Ch03 - To Be Reported by Group1 and Group 2

Embed Size (px)

Citation preview

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    1/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

    Chapter 3

    Software Processes

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    2/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 2

    Software Processes

    Coherent sets of activities for specifying,

    designing, implementing and testing

    software systems

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    3/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 3

    Objectives

    To introduce software process models

    To describe a number of different process models and

    when they may be used

    To describe outline process models for requirementsengineering, software development, testing and

    evolution

    To introduce CASE technology to support software

    process activities

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    4/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 4

    Topics covered

    Software process models

    Process iteration

    Software specification

    Software design and implementation Software validation

    Software evolution

    Automated process support

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    5/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 5

    The software process

    A structured set of activities required to develop a

    software system

    Specification

    esign

    !alidation

    Evolution

    A software process model is an abstract representation

    of a process" #t presents a description of a process from

    some particular perspective

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    6/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 6

    Generic software process models

    The waterfall model

    Separate and distinct phases of specification and development

    Evolutionary development

    Specification and development are interleaved $ormal systems development

    A mathematical system model is formally transformed to an

    implementation

    %euse&based development The system is assembled from e'isting components

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    7/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 7

    Waterfall model

    Requirementsdefinition

    System andsoftware design

    Implementationand unit testing

    Integration and

    system testing

    Operation andmaintenance

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    8/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 8

    Waterfall model phases

    %equirements analysis and definition

    System and software design

    #mplementation and unit testing

    #ntegration and system testing (peration and maintenance

    The drawbac) of the waterfall model is the difficulty of

    accommodating change after the process is underway

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    9/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 9

    Waterfall model problems

    #nfle'ible partitioning of the pro*ect into distinct stages

    This ma)es it difficult to respond to changing customer

    requirements

    Therefore, this model is only appropriate when therequirements are well&understood

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    10/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 10

    Evolutionary development

    E'ploratory development

    (b*ective is to wor) with customers and to evolve a final

    system from an initial outline specification" Should start with

    well&understood requirements

    Throw&away prototyping

    (b*ective is to understand the system requirements" Should

    start with poorly understood requirements

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    11/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 11

    Evolutionary development

    Validation Final

    version

    Development Intermediate

    versions

    Specification Initial

    version

    Outline

    description

    Concurrentactivities

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    12/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 12

    Evolutionary development

    Problems

    +ac) of process visibility

    Systems are often poorly structured

    Special s)ills e"g" in languages for rapid prototyping- may be

    required

    Applicability

    $or small or medium&si.e interactive systems

    $or parts of large systems e"g" the user interface-

    $or short&lifetime systems

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    13/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 13

    ormal systems development

    /ased on the transformation of a mathematical

    specification through different representations to an

    e'ecutable program

    Transformations are 0correctness&preserving1 so it isstraightforward to show that the program conforms to its

    specification

    Embodied in the 0Cleanroom1 approach to software

    development

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    14/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 14

    ormal systems development

    Requirementsdefinition

    Formalspecification

    Formaltransformation

    Integration andsystem testing

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    15/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 15

    ormal transformations

    R2Formal

    specification R3

    Executableprogram

    P2 P3 P4

    T1 T2 T3 T4

    Proofs of transformation correctness

    Formal transformations

    R1

    P1

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    16/49Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 16

    ormal systems development

    Problems

    2eed for specialised s)ills and training to apply the technique

    ifficult to formally specify some aspects of the system such

    as the user interface

    Applicability

    Critical systems especially those where a safety or security

    case must be made before the system is put into operation

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    17/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 17

    !euse"oriented development

    /ased on systematic reuse where systems are

    integrated from e'isting components or C(TS

    Commercial&off&the&shelf- systems

    Process stages Component analysis %equirements modification

    System design with reuse

    evelopment and integration

    This approach is becoming more important but still

    limited e'perience with it

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    18/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 18

    !euse"oriented development

    Requirements

    specification

    Component

    analysis

    Developmentand integration

    System design

    with reuse

    Requirements

    modification

    Systemvalidation

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    19/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 19

    Process iteration

    System requirements A+3A4S evolve in the course of a

    pro*ect so process iteration where earlier stages are

    rewor)ed is always part of the process for large systems

    #teration can be applied to any of the generic processmodels

    Two related- approaches

    #ncremental development

    Spiral development

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    20/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 20

    #ncremental development

    %ather than deliver the system as a single delivery,

    the development and delivery is bro)en down into

    increments with each increment delivering part of

    the required functionality

    5ser requirements are prioritised and the highest

    priority requirements are included in early

    increments

    (nce the development of an increment is started,

    the requirements are fro.en though requirements forlater increments can continue to evolve

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    21/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 21

    #ncremental development

    Validate

    increment

    Develop systemincrement

    Design systemarchitecture

    Integrateincrement

    Validate

    system

    Define outlinerequirements

    Assign requirements to increments

    System incomplete

    Finalsystem

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    22/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 22

    #ncremental development advanta$es

    Customer value can be delivered with each increment

    so system functionality is available earlier

    Early increments act as a prototype to help elicit

    requirements for later increments +ower ris) of overall pro*ect failure

    The highest priority system services tend to receive the

    most testing

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    23/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 23

    E%treme pro$rammin$

    2ew approach to development based on the

    development and delivery of very small increments of

    functionality

    %elies on constant code improvement, user involvementin the development team and pairwise programming

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    24/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 24

    Spiral development

    Process is represented as a spiral rather than as a

    sequence of activities with bac)trac)ing

    Each loop in the spiral represents a phase in the

    process" 2o fi'ed phases such as specification or design & loops

    in the spiral are chosen depending on what is required

    %is)s are e'plicitly assessed and resolved throughout

    the process

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    25/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 25

    Spiral model of the software

    process

    Riskanalysis

    Riskanalysis

    Riskanalysis

    Riskanalysis Proto-

    type 1

    Prototype 2Prototype 3

    Opera-

    tionalprotoype

    Concept ofOperation

    Simulations, models, benchmarks

    S/Wrequirements

    Requirementvalidation

    DesignV&V

    Product

    design Detailed

    design

    Code

    Unit test

    IntegrationtestAcceptance

    testService Develop, verifynext-level product

    Evaluate alternativesidentify, resolve risks

    Determine objectivesalternatives and

    constraints

    Plan next phase

    Integrationand test plan

    Developmentplan

    Requirements planLife-cycle plan

    REVIEW

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    26/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 26

    Spiral model sectors

    (b*ective setting Specific ob*ectives for the phase are identified

    %is) assessment and reduction %is)s are assessed and activities put in place to reduce the

    )ey ris)s evelopment and validation

    A development model for the system is chosen which can beany of the generic models

    Planning The pro*ect is reviewed and the ne't phase of the spiral isplanned

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    27/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 27

    Software specification

    The process of establishing what services are required

    and the constraints on the system1s operation and

    development

    %equirements engineering process $easibility study %equirements elicitation and analysis

    %equirements specification

    %equirements validation

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    28/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 28

    The re&uirements en$ineerin$

    process

    Feasibilitystudy

    Requirementselicitation and

    analysisRequirementsspecification

    Requirementsvalidation

    Feasibilityreport

    Systemmodels

    User and systemrequirements

    Requirements

    document

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    29/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 29

    Software desi$n and

    implementation

    The process of converting the system specification into

    an e'ecutable system

    Software design

    esign a software structure that realises the specification #mplementation

    Translate this structure into an e'ecutable program

    The activities of design and implementation are closely

    related and may be inter&leaved

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    30/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 30

    'esi$n process activities

    Architectural design

    Abstract specification

    #nterface design

    Component design ata structure design

    Algorithm design

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    31/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 31

    The software desi$n process

    Architecturaldesign

    Abstractspecification

    Interfacedesign

    Componentdesign

    Datastructuredesign

    Algorithmdesign

    System

    architecture

    Software

    specification

    Interface

    specification

    Component

    specification

    Datastructure

    specification

    Algorithm

    specification

    Requirementsspecification

    Design activities

    Design products

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    32/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 32

    'esi$n methods

    Systematic approaches to developing a software design

    The design is usually documented as a set of graphical

    models

    Possible models ata&flow model

    Entity&relation&attribute model

    Structural model

    (b*ect models

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    33/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 33

    Pro$rammin$ and debu$$in$

    Translating a design into a program and removing errors

    from that program

    Programming is a personal activity & there is no generic

    programming process Programmers carry out some program testing to

    discover faults in the program and remove these faults

    in the debugging process

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    34/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 34

    The debu$$in$ process

    Locateerror

    Designerror repair

    Repairerror

    Re-testprogram

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    35/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 35

    Software validation

    !erification and validation is intended to show that a

    system conforms to its specification and meets the

    requirements of the system customer

    #nvolves chec)ing and review processes and system

    testing

    System testing involves e'ecuting the system with test

    cases that are derived from the specification of the real

    data to be processed by the system

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    36/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 36

    The testin$ process

    Sub-systemtesting

    Moduletesting

    Unittesting

    Systemtesting

    Acceptance

    testing

    Componenttesting

    Integration testing Usertesting

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    37/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 37

    Testin$ sta$es 5nit testing

    #ndividual components are tested

    6odule testing

    %elated collections of dependent components are tested

    Sub&system testing 6odules are integrated into sub&systems and tested" The focushere should be on interface testing

    System testing

    Testing of the system as a whole" Testing of emergent properties

    Acceptance testing Testing with customer data to chec) that it is acceptable

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    38/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 38

    Testin$ phases

    Requirementsspecification

    Systemspecification

    Systemdesign

    Detaileddesign

    Module andunit codeand tess

    Sub-systemintegrationtest plan

    Systemintegrationtest plan

    Acceptancetest plan

    Service Acceptancetest Systemintegration test Sub-systemintegrat ion test

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    39/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 39

    Software evolution

    Software is inherently fle'ible and can change"

    As requirements change through changing business

    circumstances, the software that supports the business

    must also evolve and change

    Although there has been a demarcation between

    development and evolution maintenance- this is

    increasingly irrelevant as fewer and fewer systems are

    completely new

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    40/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 40

    System evolution

    Assess existingsystems

    Define systemrequirements

    Propose systemchanges

    Modifysystems

    Newsystem

    Existing

    systems

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    41/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 41

    (utomated process support

    )C(SE*

    Computer&aided software engineering CASE- is

    software to support software development and evolution

    processes

    Activity automation

    7raphical editors for system model development

    ata dictionary to manage design entities

    7raphical 5# builder for user interface construction

    ebuggers to support program fault finding

    Automated translators to generate new versions of a program

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    42/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 42

    Case technolo$y

    Case technology has led to significant improvements in

    the software process though not the order of magnitude

    improvements that were once predicted

    Software engineering requires creative thought & this is not

    readily automatable

    Software engineering is a team activity and, for large pro*ects,

    much time is spent in team interactions" CASE technology

    does not really support these

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    43/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 43

    C(SE classification

    Classification helps us understand the different types of

    CASE tools and their support for process activities

    $unctional perspective

    Tools are classified according to their specific function

    Process perspective

    Tools are classified according to process activities that are

    supported

    #ntegration perspective

    Tools are classified according to their organisation into

    integrated units

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    44/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 44

    unctional tool classification

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    45/49

    (ctivity"based classification

    Reengineering tools

    Testing tools

    Debugging tools

    Program analysis tools

    Language-processingtools

    Method support tools

    Prototyping tools

    Configurationmanagement tools

    Change management tools

    Documentation tools

    Editing tools

    Planning tools

    Specification Design Implementation Verificationand

    Validation

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    46/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 46

    C(SE inte$ration

    Tools

    Support individual process tas)s such as design consistency

    chec)ing, te't editing, etc"

    3or)benches

    Support a process phase such as specification or design,

    2ormally include a number of integrated tools

    Environments

    Support all or a substantial part of an entire software process"

    2ormally include several integrated wor)benches

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    47/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 47

    Tools+ wor,benches+

    environments

    Single-methodworkbenches

    General-purposeworkbenches

    Multi-methodworkbenches

    Language-specificworkbenches

    Programming TestingAnalysis anddesign

    Integratedenvironments

    Process-centredenvironments

    Filecomparators

    CompilersEditors

    EnvironmentsWorkbenchesTools

    CASEtechnology

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    48/49

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 48

    -ey points

    Software processes are the activities involved in

    producing and evolving a software system" They are

    represented in a software process model

    7eneral activities are specification, design and

    implementation, validation and evolution

    7eneric process models describe the organisation of

    software processes

    #terative process models describe the software process

    as a cycle of activities

  • 7/21/2019 Ch03 - To Be Reported by Group1 and Group 2

    49/49

    -ey points

    %equirements engineering is the process of developing

    a software specification

    esign and implementation processes transform the

    specification to an e'ecutable program

    !alidation involves chec)ing that the system meets to its

    specification and user needs

    Evolution is concerned with modifying the system after it

    is in use

    CASE technology supports software process activities