software system engineering chp2

Upload: fadhil-ismail

Post on 04-Jun-2018

220 views

Category:

Documents


0 download

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