Professional Documents
Culture Documents
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
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
Iterative Process Flow
Repeats one or more of the activities before proceeding
to the next NOTE: There are many
variants of these models
Parallel Process Flow
Executes one or more activities in parallel with other
activities.
NOTE: There are many
variants of these models
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
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
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.
V‐Model
• Waterfall Model
Variation
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.
Two common evolutionary process models.
◦ Prototyping
◦ Spiral Model
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)
Spiral Model
Src: Tatvasoft:
22
http://www.tatvasoft.com/blog/top‐12‐software‐development‐methodologies‐and‐its‐advantages‐disadvantages/
Rational Unified Process
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
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
46