You are on page 1of 22

Software Engineering

Models/Approaches
Dr.G.Annapoorani
18

Software Process Model


• Representation of a software development process

• Also called as Software Development Life Cycle (SDLC) models

• Examples

– Waterfall model

– Incremental/Iterative model

– Spiral model

2
19

Scenario 1
Customer has provided you all the requirements and has assured
that there will not be any change in the requirements. He expects the
deliverables from you at every stage of development. You have
carried out a similar project earlier and you are sure that the project
could be executed systematically.

What are your observations on the scenario?

3
20

Scenario 2
Customer wants you to start developing the software for a remote
controlled electronic toy. Customer is not sure of all requirements of
the product. She has provided you an initial set of requirements with
which she wants to have a feel of the product. She has informed you
that few more requirements will be provided later.

What are your observations on the scenario?

4
21

Scenario 3
Customer and the development team foresee many risks at every
stage of software development. At each stage of development there
are alternatives and you have to make right decisions. You and
customer are in agreement that the project is not fixed budget project.

What are your observations on the scenario?

5
22

Scenarios and Models


# Scenario Observations Model
Customer has provided you all the requirements and has assured that • No change in
there will not be any change in the requirements. He expects the requirements
deliverables from you at every stage of development. You have carried • Deliverables expected at every
1 out a similar project earlier and you are sure that the project could be stage Waterfall
executed systematically. • Systematic execution

Customer wants you to start developing the software for a remote • Complete requirements
controlled electronic toy. Customer is not sure of all requirements of the unavailable
product. She has provided you an initial set of requirements with which • Start development with a set
she wants to have a feel of the product. She has informed you that few of requirements
2 more requirements will be provided later • Initial feel of the product Incremental
expected

Customer and the development team foresee many risks at every stage • Many risks are expected
of software development. At each stage of development there are • There are alternatives at each
alternatives and you have to make right decisions. You and customer stage
3 are in agreement that the project is not fixed budget project • Not fixed budget project Spiral

6
23

Waterfall Model

System Engineering

Requirement Analysis

Design

Coding

Testing

Deployment
7
24

Waterfall Model

System Engineering
• Define scope
• Understand processes
• What needs to be automated and how soon

Deliverables
• User requirements

8
Waterfall Model

System Engineering

Requirement Analysis
• Focus on what needs to be automated
• Understand functional and non-functional
requirements
Deliverables
• Software Requirement Specification (SRS)
• Acceptance test plan and
• System test plan

9
26

Waterfall Model

System Engineering

Requirement Analysis

Design
• Blueprint of the software
• Structure and behavior of theCmooddni ugles
• High level design Testing
Deliverables
• Detailed design
• Integration test plan and
• Unit test plan
10
27

Waterfall Model

System Engineering

Requirement Analysis

Design

Coding

• Build the software


• Unit test

Deliverables 11
• Unit tested code
Waterfall Model

Design

Coding

Testing

•Ensure that requirements are met

Deliverables
• Integrated and
12
• System tested software
Waterfall Model

Coding

Testing

Deployment
• Assemble
• Install
• End-user Training and
• Sign-off

Deliverables 13
• User manual
30

Incremental Model

Assign Design
Define
Requirements System
Requirements
to Increments Architecture

Develop
Validate Integrate Validate
System
Increment Increment System
Increment

Final System

14
31

Spiral Model – Applied to Coding Phase as an example


• Tool incompatibility • Alternative code
• Lack of proficiency development tools
Analyze risks Evaluate
alternatives

Engineer Plan
• Develop the code • Resource planning
• Unit testing • Coding schedule

15
32

Summarizing Models

Guided Activity: Assignment 3

Model Advantages Disadvantages

• Limited or no scope for accommodating


• Simple and Systematic
Waterfall new requirements
• Disciplined Approach • Potential delay in identifying risks

• Part of the product is


visible at early stage • Time consuming
Incremental • Scope for accommodating new • Expensive at times
requirements
• Requires good expertise in risk
• Model for other models management
Spiral • Iterative and realistic • Model is not suitable for fixed
budget projects

16
33

Software Development Approaches


• Approaches are the practices adopted in the industry for software
development

• Popular approaches are


– Prototype
– Rapid Application Development
– Agile

• The above approaches may be used in the


context of some of the SDLC models
17
34

Scenario 2 - Revisited
• Customer wants you to start developing the software for a remote controlled electronic toy.
Customer is not sure of all requirements of the product. She has provided you an initial set of
requirements with which she wants to have a feel of the product. She has informed you that few
more requirements will be provided later.
• Observations

– Complete set of requirements not available

– Start development with a set of requirements

– Feel of the product with initial requirements expected

First increment serves as the “prototype” providing a feel of the product

18
35

RAD Approach
Why RAD Approach ?
• Tight deadlines
• High Pressure from Customer
• Quick time to Market

What is RAD Approach ?


• Rapid Application Development
• Emphasis is on short development time. Completing system
development within a short time (60 days to 90 days)
• Each major function addressed by a separate RAD team
• Users are involved throughout the development life cycle

19
36

Agile Approach
• Supports development for frequently changing system requirements

• Customer involvement is more frequent

• Uses an iterative approach to evolve the product

• Quality assured periodic deliveries happen for each distinct feature

• Features are cumulatively integrated

20
37

Agile Life Cycle

Requirements List
Priority 1 Priority 2 Priority 3 Priority 4
Analysis

Design

Code

Test

Production

21
38

SDLC Phases
• Requirements Development

• Design

• Construction

• Testing

22

You might also like