The document discusses various software development process models including:
- Common process frameworks that include activities like communication, planning, modeling, construction, and development.
- Prescriptive models like the waterfall model, incremental models, and evolutionary process models.
- Specialized process models for component-based software engineering, formal methods, and aspect-oriented development.
- The unified process which is use case driven and iterative with phases for inception, elaboration, construction, and transition.
- Agile process models which value individuals, working software, customer collaboration, and responding to change over processes.
2. Software Process - Review
The roadmap to building high quality software products
Provides a framework for managing activities
Common Process Framework
Communication
Planning
Modeling
Construction
Development
Umbrella Activities
2 IF2036 RPL - IF ITB
3. Software Process - Review
CMMI – SEI
Level 0: Incomplete
Level 1: Performed
Level 2: Managed
Level 3: Defined
Level 4: Quantitatively Managed
Level 5: Optimizing
Process Assessment
SPICE (ISO/IE15504)
ISO 9001:2000
3 IF2036 RPL - IF ITB
4. Process Models
Prescriptive Models
The Waterfall Model
Incremental Models
Incremental Model
RAD
Evolutionary Process Models
Prototyping
Spiral Model
Concurrent Development Model
4 IF2036 RPL - IF ITB
5. Process Models (2)
Specialized Process Models
CBSE
Formal Method
Aspect Oriented Development
The Unified Process
Agile Process Models
5 IF2036 RPL - IF ITB
6. The Waterfall Model
Requir ements
definition
Sy stem and
software design
Implementa tion
and unit testing
Integ ration and
sy stem testing
Oper ation and
maintenance
6 IF2036 RPL - IF ITB
7. Incremental Model
System/information incre me nt 1
engineering
analysis design code test de livery of
1 st incre me nt
incre me nt 2 analysis design code test de live ry of
2 nd incre me nt
increme nt 3 analysis design code test de live ry of
3 rd incre me nt
incre me nt 4 analysis design code test
de live ry of
4 th incre me nt
ca le nda r time
7 IF2036 RPL - IF ITB
8. RAD Model
t a
e m#3
t a
e m#2
b sn s
u i e s
m d li g
o e n
t a
e m#1 b s e s
u in s d ta
a
m d li g
o e n m d li g
o e n
po e s
r c s
b s e s
u in s m d li g
o e n
m d li g
o e n d t
aa
m d li g
o e n a p
p lic t o
ai n
g n r ti n
e ea o
t s in
e t g
&
t r o e
un v r
po e s
r c s
d t
aa m d li g
o e n
m d li g
o e n
a p ic t n
p l a io
g n r t n
e e a io
po e s
r c s
m d lin
o e g t si g
e tn
&
t r o e
un v r
a p ic t n
p l a io
g n r to
e e ai n
t si g
e tn
&
t r o e
un v r
6 - 9 d y
0 0 a s
8 IF2036 RPL - IF ITB
9. Prototyping Model
listen
to build/revise
customer mock-up
customer
test-drives
mock-up
9 IF2036 RPL - IF ITB
10. Spiral Model
Planning
Risk Analysis
Customer
Communication
Engineering
Customer
Evaluation Construction & Release
10 IF2036 RPL - IF ITB
11. Concurrent Development Model
none
Under Analysis activity
development
Awaiting
changes
Under Under review
revision
Baselined
Done
11 IF2036 RPL - IF ITB
12. Reusable
Domain SW Arch Component
Analysis Development Development
Domain Structural Repository
Model Model
Domain Reusable
Analysis Artifacts/
Components
CBSE
Component
Qualification Component
Update
Analysis Architectural Component
Design Adaptation
CBD Application
Component
Composition Software
Component
Engineering Testing
12 IF2036 RPL - IF ITB
13. The Unified Process
Use-case driven, architecture centric, iterative, and
incremental software process
Phases
Inception phase (customer communication and planning)
Elaboration phase (communication and modeling)
Construction phase
Transition phase (customer delivery and feedback)
Production phase (software monitoring and support)
13 IF2036 RPL - IF ITB
14. Iteration and Workflow
Phases
Core Workflows Inception Elaboration Construction Transition
Requirements
An iteration in the
elaboration phase
Analysis
Design
Implementation
Test
P relim ina ry iter. iter. iter. iter. ite r. iter. ite r.
Ite ration (s) #1 #2 #n #n +1 #n +2 #m #m +1
I te ra tio n s
14 IF2036 RPL - IF ITB
15. An Agile View of Process
Represents a reasonable compromise between conventional software
engineering for certain classes of software and certain types of
software projects
Can deliver successful systems quickly
Stresses continuous communication and collaboration among
developers and customers
Embraces a philosophy that encourages:
customer satisfaction,
incremental software delivery,
small project teams (composed of software engineers and stakeholders),
informal methods, and
minimal software engineering work products
Stress on-time delivery of an operational software increment over
analysis and design
15 IF2036 RPL - IF ITB
16. Manifesto for Agile Software Development
Proposes that it may be better to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
While the items on the right are still important the items on the left are
more valuable under this philosophy
Note: although most practitioners agree with this philosophy in theory,
many pragmatic issues surface in the real world that may cause items on
the right to be as important as items on the left
16 IF2036 RPL - IF ITB
17. 12 Principles
Highest priority: user satisfaction
Welcome changing requirement
Deliver working software frequently
Business people and developers work together daily
Build around motivated individuals
Face-to-face conversation
Working software: primary measure of progress
Promote sustainable development
Continuous attention to technical excellence and good design
Simplicity is essential
Self-organizing team
Tune and adjust team behavior at regular intervals
17 IF2036 RPL - IF ITB
18. Agile Process Models
All agile process models conform to the manifesto
and the principles
Examples:
Extreme Programming (XP)
Adaptive Software Development (ASD)
Dynamic Systems Development Method (DSDM)
Scrum
Crystal
Feature Driven Development (FDD)
Agile Modeling (AM)
* SEPA 6th ed, Roger S. Pressman
18 IF2036 RPL - IF ITB
Notas do Editor
Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. One phase has to be complete before moving onto the next phase.