31
Software Development Models Nguyen Trung Lap Hoa Sen University

1. Software Development Models

Embed Size (px)

Citation preview

Page 1: 1. Software Development Models

Software Development Models

Nguyen Trung Lap

Hoa Sen University

Page 2: 1. Software Development Models

Contents

Software development process

Waterfall model and V model

Iterative and incremental model

Agile model

Conclusion

Page 3: 1. Software Development Models

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

Page 4: 1. Software Development Models

SDLC

Page 5: 1. Software Development Models
Page 6: 1. Software Development Models

Video SDLC

Page 7: 1. Software Development Models

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

Page 8: 1. Software Development Models

Unmodified waterfall model

Page 9: 1. Software Development Models

Modified waterfall model

Page 10: 1. Software Development Models

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

Page 11: 1. Software Development Models

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

Page 12: 1. Software Development Models

V model

Integration andComponent

Test Planning

Unit TestPlanning

SystemTest Planning

AcceptanceTest Planning

AcceptanceTest Execution

SystemTest Execution

Integration andComponent

Test Execution

Unit TestExecution

SystemObjectives

Requirements

Design

Coding

Fault Detection& Removal

Verification stages

Validation stages

Page 13: 1. Software Development Models

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

Page 14: 1. Software Development Models

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

Page 15: 1. Software Development Models

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

Page 16: 1. Software Development Models

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

Page 17: 1. Software Development Models

Iterative and incremental model

Page 18: 1. Software Development Models
Page 19: 1. Software Development Models

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.

Page 20: 1. Software Development Models

Iterative model’s 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

Page 21: 1. Software Development Models

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

Page 22: 1. Software Development Models

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

Page 23: 1. Software Development Models

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

Page 24: 1. Software Development Models

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

Page 25: 1. Software Development Models

Agile model

Page 26: 1. Software Development Models
Page 27: 1. Software Development Models

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)

Page 28: 1. Software Development Models

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

Page 29: 1. Software Development Models

Waterfall vs Agile model video

Page 30: 1. Software Development Models

Thanks for your listening!

Page 31: 1. Software Development Models

Questions