4. MMooddeellss ddiissccuusssseedd::
Linear Sequential Model/Waterfall Model
Prototyping
RAD Model
Evolutionary Software Process Models
• The Incremental Model
• The Spiral Model
• The WINWIN Spiral Model
• The Component Assembly Model
• The Concurrent Development Model
November 5, 2014 4
5. LLiinneeaarr SSeeqquueennttiiaall//WWaatteerrffaallll
MMooddeell
The Waterfall Model was originally developed in the
early 1970s in an attempt to provide some structure to
large-scale software development
The mother of all software engineering models
Divided into distinct phases
Recognizes the importance of backtracking (feedback)
and iteration in the software process
November 5, 2014 5
6. LLiinneeaarr SSeeqquueennttiiaall//WWaatteerrffaallll MMooddeell
Problem encountered:
• Real projects rarely follow the sequential flow
that the model proposed
• It is often difficult for the customer to state all
the requirement explicitly
• The customer must have patience
November 5, 2014 6
8. AAddvvaannttaaggeess
It is easy to identify milestones
It is easy to separate one stage from another
November 5, 2014 8
9. DDiissaaddvvaannttaaggeess
Implies that any stage should be frozen before continuing
with the later stages (resulting in premature requirements,
design, coding etc)
Assumes that user requirements can be precisely
specified.
Requires customer to be patient as no way they can
assessing how far the development process has got until
they sees the nearly-finished product
Unrealistic.
November 5, 2014 9
10. PPrroottoottyyppiinngg
Suitable for unclear projects.
Pros:
· identifying requirements
· users get a feeling for the system
· developers get to "do something"
Cons:
· customer demands working product too early
· bad solutions will remain: throw-away or not?
November 5, 2014 10
15. Throw away prototyping
Starts with those requirements that are
poorly understood
November 5, 2014 15
16. Prototyping techniques
High level languages
Executable specification languages
Composition of reusable components
Application generators and forth-generation
languages
November 5, 2014 16
17. Advantages of prototyping
Changing the system early in its
development
Scrapping undesirable systems
Designing a systems for user’s needs
and expectations
November 5, 2014 17
18. Disadvantages of prototyping
Managing the project
Adopting an incomplete system as
complete
November 5, 2014 18
19. RRAADD MMooddeell
Suitable for projects with low technical risks
Emphasize on an extremely short development cycle.
RAD is a methodology for compressing the analysis, design,
build, and test phases into a series of short, iterative
development cycles
Pros:
· Speed.
· Reuse.
Cons:
· Requires many developers.
· Requires committed developers.
November 5, 2014 19
22. TThhee IInnccrreemmeennttaall MMooddeell
Suitable for products that can be developed in increments.
Combines elements of linear sequential model with the iterative
philosophy of prototyping
Pros:
· resolves changing/unclear requirements
· possible to meet business deadlines with little staff
· management of technical risks
Cons:
· untried?
· building in bad solutions
November 5, 2014 22
24. TThhee SSppiirraall MMooddeell
Suitable for large-scale projects.
Pros:
·prototyping at any stage
·risk reduction as risk analysis is performed
at each phase of system development
·Increases the quality of the software
developed
Cons:
·suitable for internal or in-house
development of large software
·risk assessment expertise required
November 5, 2014 24
26. WWIINNWWIINN SSppiirraall MMooddeell
Extension from Spiral Model
Evolutionary and risk-driven
Anchor points as milestones
Theory W – ‘Make everyone a winner’
Stakeholders
• Customers and Users
• Developers, maintainers and contractors
• Management and investors
Achieving WINWIN
• Negotiation and Prioritization
November 5, 2014 26
30. TThhee CCoonnccuurrrreenntt DDeevveellooppmmeenntt MMooddeell
Suitable for all types of projects - "this is how it works
anyhow."
Pros:
·Provides both process visibility and
concurrent phases
Cons:
·Complicated to keep track of - requires
tools.
November 5, 2014 30
32. Unified Software
Development Process
Developed by the team that created UML
Embodies best practice in system
development
Adopts an iterative approach with four
main phases
Different tasks are captured in a series of
workflows
November 5, 2014 32
33. Best Practice
Iterative and incremental development
Component-based development
Requirements-driven development
Configurability
Architecture-centrism
Visual modelling techniques
November 5, 2014 33
35. Phases, Workflows
and Iterations
Within each phase activities are grouped
into workflows
The balance of effort spent in each
workflow varies from phase to phase
Within phases there may be more than
one iteration
November 5, 2014 35
36. Inception Elaboration Construction Transition
1 2 3 4 5 6 7 8
Size of square
relative to time
spent on
workflowh
Project
Phases
November 5, 2014 36
Iterations within
Requirements each phase
Analysis
Design
Implementation
Test
Workflows
37. Difference from
Waterfall Life Cycle
In a waterfall life cycle project the phases and
the workflows are linked together
In the Requirements phase, only Requirements
workflow activities are carried out
All Requirements activity should be completed
before work starts on Analysis
In an iterative life cycle project it is recognised
that some Requirements work will be
happening alongside Analysis work
November 5, 2014 37
38. Requirements
Analysis
Design
Implementation
Test
Requirements
Analysis
Design
Implementation
Test
November 5, 2014 38
39. Major Activities of the
Development Process
Activity Techniques Key Deliverables
Requirements
Capture and
Modelling
Requirements
Elicitation
Use Case
Modelling
Prototyping
Use Case Model
Requirements List
Prototypes
Glossary
November 5, 2014 39
40. Major Activities of the
Development Process
Activity Techniques Key Deliverables
Requirements
Analysis
Collaboration
Diagrams
Class and Object
Models
Analysis
Modelling
Analysis Models
November 5, 2014 40
41. Major Activities of the
Development Process
Activity Techniques Key Deliverables
System
Design
Deployment
Modelling
Component
Modelling
Package
Modelling
Architectural
Modelling
Overview Design
and
Implementation
Architecture
November 5, 2014 41
42. Major Activities of the
Development Process
Activity Techniques Key Deliverables
Class Design Class and Object
Modelling
Interaction
Modelling
State Modelling
Design Patterns
Design Models
November 5, 2014 42
43. Major Activities of the
Development Process
Activity Techniques Key Deliverables
User
Interface
Design
Class and Object
Modelling
Interaction Modelling
State Modelling
Package Modelling
Prototyping
Design Patterns
Design Models
with Interface
Specification
November 5, 2014 43
44. Major Activities of the
Development Process
Activity Techniques Key Deliverables
Data
Management
Design
Class and Object
Modelling
Interaction
Modelling
State Modelling
Package
Modelling
Design Patterns
Design Models
with Database
Specification
November 5, 2014 44
45. Major Activities of the
Development Process
Activity Techniques Key Deliverables
Construction Programming
Component Re-use
Database DDL
Programming
Idioms
Constructed
System
Documentation
November 5, 2014 45