Chapter 2 
Software Development 
Models 
SOFTWARE SYSTEM 
ENGINEERING (260CT) 
November 5, 2014 1
MMoottiivvaattiioonn//OObbjjeeccttiivvee 
To distinguish the differences from 
another model to another 
To understand the importance of process 
in the development of software. 
November 5, 2014 2
SSooffttwwaarree DDeevveellooppmmeenntt MMooddeellss 
Software lifecycle models identify the 
key activities in the development of a 
software system and their relationships to 
one another. 
November 5, 2014 3
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
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
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
November 5, 2014 7
AAddvvaannttaaggeess 
 It is easy to identify milestones 
 It is easy to separate one stage from another 
November 5, 2014 8
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
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
Definition 
“Limited, working version of a system 
under development” 
November 5, 2014 11
Prototyping Paradigm 
November 5, 2014 12
Types of prototyping 
Evolutionary prototyping 
Throw-away prototyping 
November 5, 2014 13
Evolutionary Prototyping 
Starts with those requirements that are 
well understood 
November 5, 2014 14
Throw away prototyping 
Starts with those requirements that are 
poorly understood 
November 5, 2014 15
Prototyping techniques 
High level languages 
Executable specification languages 
Composition of reusable components 
Application generators and forth-generation 
languages 
November 5, 2014 16
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
Disadvantages of prototyping 
Managing the project 
Adopting an incomplete system as 
complete 
November 5, 2014 18
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
RRAADD MMooddeell……ccoonntt 
November 5, 2014 20
EEvvoolluuttiioonnaarryy SSooffttwwaarree PPrroocceessss 
MMooddeellss 
The Incremental Model 
The Spiral Model 
WINWIN Spiral Model 
The Component Assembly Model 
The Concurrent Development Model 
November 5, 2014 21
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
TThhee IInnccrreemmeennttaall MMooddeell……ccoonntt 
November 5, 2014 23
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
TThhee SSppiirraall MMooddeell 
November 5, 2014 25
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
WWIINNWWIINN SSppiirraall MMooddeell 
November 5, 2014 27
TThhee CCoommppoonneenntt AAsssseemmbbllyy 
MMooddeell 
 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 
November 5, 2014 28
TThhee CCoommppoonneenntt AAsssseemmbbllyy MMooddeell 
November 5, 2014 29
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
TThhee CCoonnccuurrrreenntt DDeevveellooppmmeenntt MMooddeell 
November 5, 2014 31
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
Best Practice 
Iterative and incremental development 
Component-based development 
Requirements-driven development 
Configurability 
Architecture-centrism 
Visual modelling techniques 
November 5, 2014 33
Four Phases 
Inception 
Elaboration 
Construction 
Transition 
November 5, 2014 34
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
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
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
Requirements 
Analysis 
Design 
Implementation 
Test 
Requirements 
Analysis 
Design 
Implementation 
Test 
November 5, 2014 38
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
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
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
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
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
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
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

Software System Engineering - Chapter 2

  • 1.
    Chapter 2 SoftwareDevelopment Models SOFTWARE SYSTEM ENGINEERING (260CT) November 5, 2014 1
  • 2.
    MMoottiivvaattiioonn//OObbjjeeccttiivvee To distinguishthe differences from another model to another To understand the importance of process in the development of software. November 5, 2014 2
  • 3.
    SSooffttwwaarree DDeevveellooppmmeenntt MMooddeellss Software lifecycle models identify the key activities in the development of a software system and their relationships to one another. November 5, 2014 3
  • 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
  • 7.
  • 8.
    AAddvvaannttaaggeess  Itis easy to identify milestones  It is easy to separate one stage from another November 5, 2014 8
  • 9.
    DDiissaaddvvaannttaaggeess  Impliesthat 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  Suitablefor 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
  • 11.
    Definition “Limited, workingversion of a system under development” November 5, 2014 11
  • 12.
  • 13.
    Types of prototyping Evolutionary prototyping Throw-away prototyping November 5, 2014 13
  • 14.
    Evolutionary Prototyping Startswith those requirements that are well understood November 5, 2014 14
  • 15.
    Throw away prototyping Starts with those requirements that are poorly understood November 5, 2014 15
  • 16.
    Prototyping techniques Highlevel 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
  • 20.
  • 21.
    EEvvoolluuttiioonnaarryy SSooffttwwaarree PPrroocceessss MMooddeellss The Incremental Model The Spiral Model WINWIN Spiral Model The Component Assembly Model The Concurrent Development Model November 5, 2014 21
  • 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
  • 23.
  • 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
  • 25.
    TThhee SSppiirraall MMooddeell November 5, 2014 25
  • 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
  • 27.
  • 28.
    TThhee CCoommppoonneenntt AAsssseemmbbllyy MMooddeell  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 November 5, 2014 28
  • 29.
    TThhee CCoommppoonneenntt AAsssseemmbbllyyMMooddeell November 5, 2014 29
  • 30.
    TThhee CCoonnccuurrrreenntt DDeevveellooppmmeennttMMooddeell  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
  • 31.
  • 32.
    Unified Software DevelopmentProcess 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 Iterativeand incremental development Component-based development Requirements-driven development Configurability Architecture-centrism Visual modelling techniques November 5, 2014 33
  • 34.
    Four Phases Inception Elaboration Construction Transition November 5, 2014 34
  • 35.
    Phases, Workflows andIterations 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 ConstructionTransition 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 WaterfallLife 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 ofthe 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 ofthe 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 ofthe 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 ofthe 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 ofthe 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 ofthe 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 ofthe Development Process Activity Techniques Key Deliverables Construction Programming Component Re-use Database DDL Programming Idioms Constructed System Documentation November 5, 2014 45