software system engineering chp2
TRANSCRIPT
-
8/13/2019 Software System Engineering Chp2
1/45
20 November 2013 1
ChapterSoftware Development Models
SOFTWARE SYSTEM
ENGINEERING (260CT)
-
8/13/2019 Software System Engineering Chp2
2/45
20 November 2013 2
Motivation/Objective
To distinguish the differences from
another model to another
To understand the importance ofprocess in the development of software.
-
8/13/2019 Software System Engineering Chp2
3/45
20 November 2013 3
Software Development Models
Software lifecycle modelsidentify the
key activitiesin the development of a
software system and their relationships
to one another.
-
8/13/2019 Software System Engineering Chp2
4/45
20 November 2013 4
Models discussed: 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
-
8/13/2019 Software System Engineering Chp2
5/45
20 November 2013 5
Linear Sequential/Waterfall
Model
The Waterfall Modelwas originally developed in theearly 1970s in an attempt to provide some structure tolarge-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
-
8/13/2019 Software System Engineering Chp2
6/45
20 November 2013 6
Linear Sequential/Waterfall Model
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
-
8/13/2019 Software System Engineering Chp2
7/45
20 November 2013 7
-
8/13/2019 Software System Engineering Chp2
8/45
20 November 2013 8
Advantages
It is easy to identify milestones
It is easy to separate one stage from another
-
8/13/2019 Software System Engineering Chp2
9/45
20 November 2013 9
Disadvantages
Implies that any stage should be frozen before continuingwith the later stages (resulting in premature requirements,design, coding etc)
Assumes that user requirements can be preciselyspecified.
Requires customer to be patient as no way they canassessing how far the development process has got untilthey sees the nearly-finished product
Unrealistic.
-
8/13/2019 Software System Engineering Chp2
10/45
20 November 2013 10
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?
Prototyping
-
8/13/2019 Software System Engineering Chp2
11/45
20 November 2013 11
Definition
Limited, working version of a system
under development
-
8/13/2019 Software System Engineering Chp2
12/45
20 November 2013 12
Prototyping Paradigm
-
8/13/2019 Software System Engineering Chp2
13/45
20 November 2013 13
Types of prototyping
Evolutionary prototyping
Throw-away prototyping
-
8/13/2019 Software System Engineering Chp2
14/45
20 November 2013 14
Evolutionary Prototyping
Starts with those requirements that are
well understood
-
8/13/2019 Software System Engineering Chp2
15/45
20 November 2013 15
Throw away prototyping
Starts with those requirements that are
poorly understood
-
8/13/2019 Software System Engineering Chp2
16/45
20 November 2013 16
Prototyping techniques
High level languages
Executable specification languages
Composition of reusable components
Application generators and forth-
generation languages
-
8/13/2019 Software System Engineering Chp2
17/45
20 November 2013 17
Advantages of prototyping
Changing the system early in its
development
Scrapping undesirable systems Designing a systems for users needs
and expectations
-
8/13/2019 Software System Engineering Chp2
18/45
20 November 2013 18
Disadvantages of prototyping
Managing the project
Adopting an incomplete system as
complete
-
8/13/2019 Software System Engineering Chp2
19/45
20 November 2013 19
RAD Model
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.
-
8/13/2019 Software System Engineering Chp2
20/45
20 November 2013 20
RAD Modelcont
-
8/13/2019 Software System Engineering Chp2
21/45
20 November 2013 21
Evolutionary Software Process
Models
The Incremental Model
The Spiral Model
WINWIN Spiral Model
The Component Assembly Model
The Concurrent Development Model
-
8/13/2019 Software System Engineering Chp2
22/45
20 November 2013 22
The Incremental Model
Suitable for products that can be developed in increments.
Combines elements of linear sequential model with the iterativephilosophy 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
-
8/13/2019 Software System Engineering Chp2
23/45
20 November 2013 23
The Incremental Modelcont
-
8/13/2019 Software System Engineering Chp2
24/45
20 November 2013 24
The Spiral Model
Suitable for large-scale projects.
Pros:
prototyping at any stage
risk reduction as risk analysis is performedat each phase of system development
Increases the quality of the softwaredeveloped
Cons:suitable for internal or in-house
development of large software
risk assessment expertise required
-
8/13/2019 Software System Engineering Chp2
25/45
20 November 2013 25
The Spiral Model
-
8/13/2019 Software System Engineering Chp2
26/45
20 November 2013 26
WINWIN Spiral Model
Extension from Spiral Model
Evolutionary and risk-driven
Anchor points as milestones
Theory WMake everyone a winner
Stakeholders
Customers and Users Developers, maintainers and contractors
Management and investors Achieving WINWIN
Negotiation and Prioritization
-
8/13/2019 Software System Engineering Chp2
27/45
20 November 2013 27
WINWIN Spiral Model
-
8/13/2019 Software System Engineering Chp2
28/45
20 November 2013 28
The Component Assembly
Model
Suitable for component-based technologies such as OO.
Pros:
software reuse
reductions in cycle time
lower project costs
Cons:
Finding components
Are components reusable?
Adaptation
-
8/13/2019 Software System Engineering Chp2
29/45
20 November 2013 29
The Component Assembly Model
-
8/13/2019 Software System Engineering Chp2
30/45
20 November 2013 30
The Concurrent Development Model
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 - requirestools.
-
8/13/2019 Software System Engineering Chp2
31/45
20 November 2013 31
The Concurrent Development Model
-
8/13/2019 Software System Engineering Chp2
32/45
20 November 2013 32
Unified Software
Development Process
Developed by the team that createdUML
Embodies best practice in systemdevelopment
Adopts an iterative approach with fourmain phases
Different tasks are captured in a seriesof workflows
-
8/13/2019 Software System Engineering Chp2
33/45
20 November 2013 33
Best Practice
Iterative and incremental development
Component-based development
Requirements-driven development
Configurability
Architecture-centrism
Visual modelling techniques
-
8/13/2019 Software System Engineering Chp2
34/45
20 November 2013 34
Four Phases
Inception
Elaboration
Construction
Transition
-
8/13/2019 Software System Engineering Chp2
35/45
20 November 2013 35
Phases, Workflows
and Iterations
Within each phase activities are grouped
into workflows
The balance of effort spent in eachworkflow varies from phase to phase
Within phases there may be more than
one iteration
-
8/13/2019 Software System Engineering Chp2
36/45
20 November 2013 36
Size of square
relative to time
spent on
workflowh
Inception Elaboration Construction TransitionProject
Phases
1 2 3 4 5 6 7 8
Iterations within
each phaseRequirements
nalysis
Design
Implementation
Test
Workflows
-
8/13/2019 Software System Engineering Chp2
37/45
20 November 2013 37
Difference from
Waterfall Life Cycle
In a waterfall life cycle project the phases andthe workflows are linked together
In the Requirements phase, only Requirementsworkflow activities are carried out
All Requirements activity should be completedbefore work starts on Analysis
In an iterative life cycle project it is recognisedthat some Requirements work will behappening alongside Analysis work
-
8/13/2019 Software System Engineering Chp2
38/45
20 November 2013 38
Requirements
nalysis
Design
Implementation
Test
Requirementsnalysis
DesignImplementation
Test
-
8/13/2019 Software System Engineering Chp2
39/45
20 November 2013 39
Major Activities of the
Development Process
Activity Techniques Key Deliverables
Requirements
Capture andModelling
Requirements
ElicitationUse Case
Modelling
Prototyping
Use Case Model
Requirements ListPrototypes
Glossary
-
8/13/2019 Software System Engineering Chp2
40/45
20 November 2013 40
Major Activities of the
Development Process
Activity Techniques Key Deliverables
Requirements
Analysis
Collaboration
DiagramsClass and Object
Models
Analysis
Modelling
Analysis Models
-
8/13/2019 Software System Engineering Chp2
41/45
20 November 2013 41
Major Activities of the
Development Process
Activity Techniques Key Deliverables
System
Design
Deployment
ModellingComponent
Modelling
Package
ModellingArchitectural
Modelling
Overview Design
andImplementation
Architecture
-
8/13/2019 Software System Engineering Chp2
42/45
20 November 2013 42
Major Activities of the
Development Process
Activity Techniques Key Deliverables
Class Design Class and Object
ModellingInteraction
Modelling
State Modelling
Design Patterns
Design Models
-
8/13/2019 Software System Engineering Chp2
43/45
20 November 2013 43
Major Activities of the
Development Process
Activity Techniques Key Deliverables
User
InterfaceDesign
Class and Object
ModellingInteraction Modelling
State Modelling
Package Modelling
Prototyping
Design Patterns
Design Models
with InterfaceSpecification
-
8/13/2019 Software System Engineering Chp2
44/45
20 November 2013 44
Major Activities of the
Development Process
Activity Techniques Key Deliverables
Data
ManagementDesign
Class and Object
ModellingInteraction
Modelling
State Modelling
PackageModelling
Design Patterns
Design Models
with DatabaseSpecification
-
8/13/2019 Software System Engineering Chp2
45/45
Major Activities of the
Development Process
Activity Techniques Key Deliverables
Construction Programming
Component Re-use
Database DDL
Programming
Idioms
Constructed
SystemDocumentation