You are on page 1of 23

AT71.

05 – ISDM (Information Systems Development and Management)

II. SDLC & Software Process
Dr. Chutiporn Anutariya  |  chuti at ait dot asia
1

Outline
◦Software Process Model
◦ Waterfall Model: Traditional Waterfall and V‐Model
◦ Incremental Model
◦ Evolutionary Model: Prototyping and Spiral
◦ Rational Unified Process

◦Process Activities
◦ Software Specification
◦ Software Development
◦ Software Validation
◦ Software Evolution

2
Software Process Model
3

Software Process Model
A software process model is an abstract representation 
of a process.
• A description of a process from some particular 
perspective.
• A structured set of activities required to develop a 
software system

4
Generic Process Framework Activities

Communication : understanding requirements

Planning : tasks, risks, resources, products, schedule

Modeling : analysis, design

Construction : coding, testing

Deployment : delivery, evaluation

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 5

Generic Software Process Flow
1. Linear 

2. Iterative

3. Evolutionary

4. Parallel

6
Linear Process Flow
Executes each of the five framework activities in 
sequence 

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 7

Iterative Process Flow
Repeats one or more of the activities before proceeding 
to the next  NOTE: There are many 
variants of these models

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 8


Evolutionary Process Flow
• Executes the activities in a “circular” manner. 
• Incremental delivery of more complete versions of 
software. NOTE: There are many 
variants of these models

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 9

Parallel Process Flow
Executes one or more activities in parallel with other 
activities. 
NOTE: There are many 
variants of these models

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 10


Prescriptive Software Process Models
• Waterfall Model Prescriptive process 
models advocate an 
• Incremental Model
• Delivery operational product at each increment orderly approach to 
software engineering.
• Evolutionary Model
• Deliver increasingly more complete versions of 
software
• Prototyping, Spiral Model
• Other Process Models
• Component‐Based Development: emphasize on 
reuse
• Formal methods: emphasize the mathematical 
specification of requirements
• Aspect‐Oriented Software Development
• Unified Process
• A use‐case driven, architecture‐centric, iterative 
and incremental, closely aligned with UML.

11

Waterfall Model 
• Sometimes called the Classic or Traditional Life Cycle.
• Software is developed in well‐defined, sequential 
phases
• One phase must be completed and agreed upon by 
customer before moving onto the next
• Note: Royce proposed feedback loops, but usually 
linear in practice

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 12


13

When to use Waterfall Model

Requirements will not 
Requirements are  The requirements have 
change very much 
knowable in advance  no unresolved, high‐
during development or 
of implementation risk implications
evolution

Requirements are 
Right architecture for 
compatible with all the  Enough calendar time 
implementing the 
key system  to proceed 
requirements is well 
stakeholders’  sequentially
understood
expectations

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 14


When to use Waterfall Model
Waterfall Pros
• Makes planning, scheduling, and tracking progress 
simple
• Permits pipelining of tasks (requirements analysis, 
design, coding, testing)
• Accommodates updates to large systems that rarely 
need major changes

Waterfall Cons
• Inflexible partitioning of the project into distinct 
stages makes it difficult to respond to changing 
customer requirements.
• One phase has to be complete before moving onto 
the next phase.
• Few business systems have stable requirements.

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 15

V‐Model
• Waterfall Model 
Variation

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 16


Incremental Model
Software is developed in incremental releases
◦ Start with well‐understood requirements
◦ Deliver core functionality early, and additional functions in 
stages
◦ Add new features over time as proposed by the customer.

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 17

Incremental Model
Software is developed in incremental releases
◦ Start with well‐understood requirements
◦ Deliver core functionality early, and additional functions in 
stages
◦ Add new features over time as proposed by the customer.
Example, word‐processing software development: 
◦ Deliver basic file management, editing, and document 
production functions in the first increment; 
◦ More sophisticated editing and document production 
capabilities in the second increment; 
◦ Spelling and grammar checking in the third increment; 
◦ Advanced page layout capability in the fourth increment.

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 18


Evolutionary Model
Software is developed through exploratory process
◦ Iterative delivery of software
◦ Each iteration delivers a more complex and complete system

Two common evolutionary process models. 
◦ Prototyping
◦ Spiral Model

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 19

Prototyping
◦ Quickly develop version of 
software for evaluation
◦ Objective is to clarify the 
system requirements
◦ Prototypes are often 
“thrown‐away” (code not 
used in final version)

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 20


• Software evolves as the process 
Spiral Model progresses. So the developer and 
customer better understand and react to 
risks at each evolutionary level. 
• The spiral model uses prototyping as a 
risk reduction mechanism.

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 21

Spiral Model

Src: Tatvasoft: 
22
http://www.tatvasoft.com/blog/top‐12‐software‐development‐methodologies‐and‐its‐advantages‐disadvantages/
Rational Unified Process

Src: R. Pressman: Software Engineering: A Practitioner’s Approach (7th Edition), McGraw‐Hill, 2009. 23

Rational Unified Process

24
So many models: 
Waterfall, 
Incremental, 
Iterative
ANY CONFUSION????

25

26
????

C
????

D
27

Process activities
28
Process activities
◦ Real software processes are inter‐leaved sequences of 
technical, collaborative and managerial activities with the 
overall goal of specifying, designing, implementing and testing 
a software system. 
◦ The four basic process activities specification, development, 
validation and evolution are organized differently in different 
development processes. 
◦ For example, in the waterfall model, they are organized in 
sequence, whereas in incremental development they are 
interleaved. 

29

Software process activities
Customers and engineers define the software 
1. Software  that is to be produced and the constraints on 
Specification its operation.

2. Software 
Development The software is designed and programmed.

3. Software  The software is checked to ensure that it is 
Validation what the customer requires.

4. Software  The software is modified to reflect changing 
Evolution customer and market requirements.

30
1. Software Specification
The process of establishing what services are required 
and the constraints on the system’s operation and 
development.
Requirements engineering process

Requirements  Requirements 
Requirements 
elicitation and  specification
validation
analysis

• What do the system  • Defining the  • Checking the validity of 


stakeholders require or  requirements in detail the requirements
expect from the system?

31

Requirements Engineering Process

32
2. Software Development

Design Implementation
• Design a software  • Design a software 
structure that  structure that 
realises the  realises the 
specification specification

The activities of design and implementation are 
closely related and may be inter‐leaved.

33

2.1 Design Process

34
Design Activities
• Identify the overall structure of the system, the 
Architectural design principal components (subsystems or modules), 
their relationships and how they are distributed.

• Design the system data structures and how these 
Database design are to be represented in a database. 

Interface design • Define the interfaces between system components. 

Component  • Search for reusable components.
selection and design • If unavailable, you design how it will operate. 

35

2.2 Implementation Activities

Programming Debugging
• An individual  • An activity of 
activity with no  finding program 
standard process. faults and 
correcting these 
faults.

36
3. Software Validation
◦Verification and validation (V & V) is intended 
to show that a system conforms to its 
specification and meets the requirements of 
the system customer.

◦Involves checking and review processes and 
system testing.

37

Stages of Testing

38
Testing Stages
• Individual components are tested 
independently; 
Component  • Components may be functions or 
Testing objects or coherent groupings of these 
entities.

• Testing of the system as a whole. 
System 
Testing of emergent properties is 
Testing particularly important.

Acceptance  • Testing with customer data to check that 
Testing the system meets the customer’s needs.

39

Testing phases in a plan‐driven 
software process (V‐model)

40
4. Software Evolution
◦ Software is inherently flexible and can change. 
◦ As requirements change through changing business 
circumstances, the software that supports the business must 
also evolve and change.

41

Let’s make a
SUMMARY
together!

42
43

Do you see any 
problems?

44
What’s Next?
AGILE DEVELOPMENT

45

Next lecture PREPARATION!


• Agile Video Clips: To gain an overview
understanding on values and principles of agile
software development and how an Agile Team
works together.
• Watch the following two videos in the given order:
• VDO1: Introduction to Agile, its values and
principles (11 min) :
http://bit.ly/isdm-agile-vdo1
• VDO2: What Agile (SCRUM) is (3 min):
http://bit.ly/isdm-agile-vdo2

46

You might also like