17
INTRODUCTION TO BASIC PROGRMMING COM 1013 Chapter 6: software development method Types of Software Development Strategies PREPARED BY: JACQULYN ANNABELLA KASNIDAR BINTI NURDIN

P.p asngmnt miss juss

Embed Size (px)

Citation preview

Page 1: P.p asngmnt miss juss

INTRODUCTION TO BASIC PROGRMMING COM 1013

Chapter 6: software development method

Types of Software Development Strategies

PREPARED BY:

JACQULYN ANNABELLA

KASNIDAR BINTI NURDIN

Page 2: P.p asngmnt miss juss

What is software development ??

A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system.

Common methodologies include waterfall, prototyping, incremental development, spiral development, rapid application development, and extreme programming.

Page 3: P.p asngmnt miss juss

Common methodologies

waterfall

prototyping

Incremental development

Spiral development

Rapid application

development (RAD)

Agile development

Page 4: P.p asngmnt miss juss

RAPID APPLICATION DEVELOPMENT (RAD)

Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping.

Page 5: P.p asngmnt miss juss

Requirements Planning phase – combines elements of the system planning and systems analysis phases of the System Development Life Cycle (SDLC). Users, managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements. It ends when the team agrees on the key issues and obtains management authorization to continue.

User design phase – during this phase, users interact with systems analysts and develop models and prototypes that represent all system processes, inputs, and outputs. The RAD groups or subgroups typically use a combination of Joint Application Development (JAD) techniques and CASE tools to translate user needs into working models. User Design is a continuous interactive process that allows users to understand, modify, and eventually approve a working model of the system that meets their needs.

Page 6: P.p asngmnt miss juss

Construction phase – focuses on program and application development task similar to the SDLC. In RAD, however, users continue to participate and can still suggest changes or improvements as actual screens or reports are developed. Its tasks are programming and application development, coding, unit-integration and system testing.

Cutover phase – resembles the final tasks in the SDLC implementation phase, including data conversion, testing, changeover to the new system, and user training. Compared with traditional methods, the entire process is compressed. As a result, the new system is built, delivered, and placed in operation much sooner.

Page 7: P.p asngmnt miss juss

Advantage & Disadvantage of RAD

Advantages Flexible and adaptable

to changes Can handle large

projects without a doubt

RAD realizes an overall reduction in project risk.

Generally Rad incorporates short development cycles (2-3 months).

 

Disadvantages Can’t use for small

projects Requires more resources

and money to implement RAD

All applications are not competible with RAD

RAD is not appropriate hen technical risks are high

Need both customer and developer commitments to complete a project. Otherwise RAD wil fail

 

Page 8: P.p asngmnt miss juss

SPIRAL DEVELOPMENT

The Spiral Development ( or Lifecycle) Model is a systems development method used in information technology.

It combines the features of the prototyping model and the waterfall model.

The spiral model is intended for large, expensive and complicated projects.

Page 9: P.p asngmnt miss juss

Spiral model

Page 10: P.p asngmnt miss juss

Each loop has four sections or quadrants :

1. To determine the objectives, alternatives and constraints. We try to understand the product objectives, alternatives in design and constraints imposed because of cost, technology, schedule, etc.

2. Risk analysis and evaluation of alternatives. Here we try to find which other approaches can be implemented in order to fulfill the identified constraints. Operational and technical issues are addressed here. Risk mitigation is in focus in this phase. And evaluation of all these factors determines future action.

3. Execution of that phase of development. In this phase we develop the planned product. Testing is also done. In order to do development, waterfall or incremental approach can be implemented. 

4. Planning the next phase. Here we review the progress and judge it considering all parameters. Issues which need to be resolved are identified in this phase and necessary steps are taken. 

Page 11: P.p asngmnt miss juss

Advantage and Disadvantage SpiralAdvantages

1)spiral Life Cycle Model is one of the most flexible SDLC models in place. Development phases can be determined by the project manager, according to the complexity of the project.

2)  It is suitable for high risk projects, where business needs may be unstable.

3)  Risk management is one of the in-built features of the model, which makes it extra attractive compared to other models.

Disadvantages

1)  Cost involved in this model is usually high.2)  It is a complicated approach especially for projects with a clear SRS.3)  Skills required, to evaluate and review project from time to time, need expertise.4)  Rules and protocols should be followed properly to effectively implement this model. Doing so, through-out the span of project is tough.

Page 12: P.p asngmnt miss juss

AGILE SOFTWARE DEVELOPMENT

Agile methodology is an alternative to traditional project management, typically used in software development. It helps teams respond to unpredictability through incremental, iterative work cadences, known as sprints. Agile methodologies are an alternative to waterfall, or traditional sequential development.

Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams

Page 13: P.p asngmnt miss juss

Agile model

Page 14: P.p asngmnt miss juss

The Agile Manifesto is based on twelve principles: Customer satisfaction by rapid delivery of useful software

Welcome changing requirements, even late in development

Working software is delivered frequently (weeks rather than months)

Working software is the principal measure of progress

Sustainable development, able to maintain a constant pace

Close, daily cooperation between business people and developers

Face-to-face conversation is the best form of communication (co-location)

Projects are built around motivated individuals, who should be trusted

Continuous attention to technical excellence and good design

Simplicity—the art of maximizing the amount of work not done—is essential

Self-organizing teams

Regular adaptation to changing circumstances

Page 15: P.p asngmnt miss juss

Advantage and Disadvantage AgileAdvantages

• Customer satisfaction by rapid, continuous delivery of useful software.

• People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.

• Working software is delivered frequently (weeks rather than months).

• Face-to-face conversation is the best form of communication.

Disadvantages

• In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.

• There is lack of emphasis on necessary designing and documentation.

• The project can easily get taken off track if the customer representative is not clear what final outcome that they want.

Page 16: P.p asngmnt miss juss

What is prototyping?? Software prototyping, refers to the activity of

creating prototypesp of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing

A prototype is a model or a program which is not based on strict planning, but is an early approximation of the final product or software system. A prototype acts as a sample to test the process. From this sample we learn and try to build a better final product..

Page 17: P.p asngmnt miss juss

Advantage and disadvantage of prototypeAdvantages of Prototype model:

Users are actively involved in the development

Since in this methodology a working model of the system is provided, the users get a better understanding of the system being developed.

Errors can be detected much earlier.

Quicker user feedback is available leading to better solutions.

Missing functionality can be identified easily

Disadvantages of Prototype model:o Leads to implementing and

then repairing way of building systems.

o Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.

o Incomplete application may cause application not to be used as thefull system was designedIncomplete or inadequate problem analysis.