You are on page 1of 31

Software Development Models

Nguyen Trung Lap Hoa Sen University

Contents
Software development process Waterfall model and V model Iterative and incremental model

Agile model
Conclusion

Software development process


A structure imposed on the development of a software There are several models for such processes
Waterfall Spiral Iterative and incremental Agile

Each model contains a variety of tasks or activities that


take place during the process

SDLC

Video SDLC

Waterfall Model
A sequential software development process Progress is seen as flowing steadily downwards (like a waterfall)

Phases: Requirement, Design, Implement, Testing and


Maintenance Serves as a baseline for many other lifecycle models

Unmodified waterfall model

Modified waterfall model

Waterfall Model
Disadvantages:
Difficulty of change after the process is underway One phase has to be complete before moving onto the next one Inflexible

Good for:
Requirements are well-understood Changes will be fairly limited during the design process Few business systems have stable requirements Large projects where a system is developed at several sites

V model
The extension of the waterfall model The process steps are bent upwards after the coding phase, to form the typical V shape.

V-Model show the relationships between development


phases and its associated phase of testing

V model
System Objectives Acceptance Test Planning Acceptance Test Execution

Requirements

System Test Planning

System Test Execution

Design Fault Detection & Removal Coding

Integration and Component Test Planning

Integration and Component Test Execution

Unit Test Planning

Unit Test Execution

Verification stages

Validation stages

V model strength
Emphasize planning for verification and validation of the product in early stages of product development Each deliverable must be testable

Project management can track progress by milestones


Easy to use

V model weakness
Does not easily handle concurrent events Does not handle iterations or phases Does not easily handle dynamic changes in

requirements
Does not contain risk analysis activities

When to use V model


Excellent choice for systems requiring high reliability All requirements are known up-front When it can be modified to handle changing

requirements beyond analysis phase


Solution and technology are known

Iterative and incremental model


A cyclic software development process Developed in response to the weaknesses of the waterfall model.

It starts with an initial planning and ends with deployment


with the cyclic interactions. Parts of the RUP, Extreme, Agile programming

Iterative and incremental model

Iterative and incremental model


Develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental) Take advantage of what was learned during the

development of earlier portions or versions


Start with subset of the software requirements and iteratively enhance until the full system is implemented. At each iteration, new functional capabilities are added.

Iterative models phases


Inception identifies project scope, risks, and requirements Elaboration delivers a working architecture that mitigates the top risks and fulfills the non-functional requirements.

Construction incrementally fills-in functional requirements.


Transition delivers the system Each of the phases may be divided into 1 or more iterations

Iterative model strength


Develop high-risk or major functions first

Each release delivers an operational product


Customer can respond to each build Uses divide and conquer breakdown of tasks Lowers initial delivery cost Initial product delivery is faster Customers get important functionality early Risk of changing requirements is reduced

Iterative model weakness


Requires good planning and design Requires early definition of a complete and fully functional system to allow for the definition of increments

Well-defined module interfaces are required (some will


be developed long before others) Total cost of the complete system is not lower

When to use iterative model


Risk, funding, schedule, program complexity, or need for early realization of benefits. Most of the requirements are known up-front but are

expected to evolve over time


A need to get basic functionality to the market early On projects which have lengthy development schedules On a project with new technology

Agile development
A group of software development methodologies based on iterative development Requirements and solutions evolve through collaboration

between self-organizing, cross-functional teams


Encourages frequent inspection and adaptation, teamwork, self-organization and accountability

Agile model

Agile model characteristic


Iterations are short time frames (time boxes) 7-30 days. Cross-functional and self-organizing without consideration for roles of team members

Emphasize face-to-face communication


Team size is typically small (5-9 people)

Summary
Software development is the development of a software product in a planned and structured process There are several models for such processes
Waterfall V model Iterative and incremental

Agile

Waterfall vs Agile model video

Thanks for your listening!

Questions

You might also like