+ All Categories
Home > Documents > Ch08- To Be Reported by Group7 and Group8

Ch08- To Be Reported by Group7 and Group8

Date post: 09-Mar-2016
Category:
Upload: kitkatcabz
View: 13 times
Download: 0 times
Share this document with a friend

of 39

Transcript
  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    1/39

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

    Chapter 8

    Software Prototyping

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    2/39

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

    Software Prototyping

    Rapid software development to validate

    requirements

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    3/39

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

    Objectives

    To describe the use of prototypes in different

    types of development project

    To discuss evolutionary and throw-away

    prototyping To introduce three rapid prototyping techniques -

    high-level language development, database

    programming and component reuse To explain the need for user interface prototyping

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    4/39

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

    Topics covered

    Prototyping in the software process

    Prototyping techniques

    User interface prototyping

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    5/39

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

    System prototyping

    Prototyping is the rapid development of a system

    n the past, the developed system was normally

    thought of as inferior in some way to the required

    system so further development was required !ow, the boundary between prototyping and

    normal system development is blurred and many

    systems are developed using an evolutionaryapproach

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    6/39

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

    Uses of system prototypes

    The principal use is to help customers and

    developers understand the requirements for the

    system

    " Requirements elicitation# Users can experiment with a prototypeto see how the system supports their wor$

    " Requirements validation# The prototype can reveal errors and

    omissions in the requirements

    Prototyping can be considered as a ris$ reductionactivity which reduces requirements ris$s

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    7/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 7

    Prototyping benefits

    %isunderstandings between software users and

    developers are exposed

    %issing services may be detected and confusing

    services may be identified & wor$ing system is available early in the process

    The prototype may serve as a basis for deriving a

    system specification

    The system can support user training and system

    testing

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

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

    Prototyping process

    Establishprototype

    objectives

    Defineprototype

    functionality

    Developprototype

    Evaluateprototype

    Prototypingplan

    Outlinedefinition

    Executableprototype

    Evaluationreport

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    9/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 9

    Prototyping benefits

    mproved system usability

    'loser match to the system needed

    mproved design quality

    mproved maintainability

    Reduced overall development effort

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    10/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 10

    Prototyping in the software process

    (volutionary prototyping" &n approach to system development where an initial prototype

    is produced and refined through a number of stages to the final

    system

    Throw-away prototyping" & prototype which is usually a practical implementation of the

    system is produced to help discover requirements problems and

    then discarded# The system is then developed using some other

    development process

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    11/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 11

    Prototyping objectives

    The objective of evolutionary prototypingis to

    deliver a wor$ing system to end-users# The

    development starts with those requirements

    which are best understood# The objective of throw-away prototypingis to

    validate or derive the system requirements# The

    prototyping process starts with those

    requirements which are poorly understood

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    12/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 12

    Approaches to prototyping

    Evolutionary

    prototyping

    Throw-away

    Prototyping

    Delivered

    system

    Executable Prototype +System Specification

    OutlineRequirements

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    13/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 13

    Evoltionary prototyping

    %ust be used for systems where the specification

    cannot be developed in advance e#g# & systems

    and user interface systems

    )ased on techniques which allow rapid systemiterations

    *erification is impossible as there is no

    specification# *alidation means demonstratingthe adequacy of the system

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    14/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 14

    Evoltionary prototyping

    Build prototypesystem

    Develop abstractspecification

    Use prototypesystem

    Deliver

    system

    System

    adequate?

    YES

    N

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    15/39

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    16/39

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

    Evoltionary prototyping

    +pecification, design and implementation are

    inter-twined

    The system is developed as a series of

    increments that are delivered to the customer Techniques for rapid system development are

    used such as '&+( tools and .s

    User interfaces are usually developed using aU development tool$it

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    17/39

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

    Evoltionary prototyping problems

    %anagement problems" (xisting management processes assume a waterfall model of

    development

    " +pecialist s$ills are required which may not be available in all

    development teams

    %aintenance problems" 'ontinual change tends to corrupt system structure so long-

    term maintenance is expensive

    'ontractual problems

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    18/39

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

    Prototypes as specifications

    +ome parts of the requirements /e#g# safety-

    critical functions0 may be impossible to prototype

    and so don1t appear in the specification

    &n implementation has no legal standing as acontract

    !on-functional requirements cannot be

    adequately tested in a system prototype

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    19/39

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

    !ncremental development

    +ystem is developed and delivered in increments after

    establishing an overall architecture

    Requirements and specifications for each increment may

    be developed Users may experiment with delivered increments while

    others are being developed# therefore, these serve as a

    form of prototype system

    ntended to combine some of the advantages ofprototyping but with a more manageable process and

    better system structure

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    20/39

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

    !ncremental development process

    Validateincrement

    Build systemincrement

    Specify systemincrement

    Design system

    architecture

    Define system

    deliverables

    Systemcomplete?

    Integrateincrement

    Validatesystem

    Deliver finalsystem

    YES

    NO

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    21/39

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

    Throw"away prototyping

    Used to reduce requirements ris$

    The prototype is developed from an initial

    specification, delivered for experiment then

    discarded The throw-away prototype should !2T be

    considered as a final system" +ome system characteristics may have been left out

    " There is no specification for long-term maintenance

    " The system will be poorly structured and difficult to maintain

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    22/39

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

    Throw"away prototyping

    Outline

    requirements

    Develop

    prototype

    Evaluate

    prototype

    Specify

    system

    Developsoftware

    Validatesystem

    Deliveredsoftware

    system

    Reusablecomponents

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    23/39

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

    Prototype delivery

    3evelopers may be pressurised to deliver a

    throw-away prototype as a final system

    This is not recommended" t may be impossible to tune the prototype to meet non-

    functional requirements

    " The prototype is inevitably undocumented

    " The system structure will be degraded through changes made

    during development

    " !ormal organisational quality standards may not have been

    applied

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    24/39

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

    #apid prototyping techni$es

    *arious techniques may be used for rapid

    development" 3ynamic high-level language development

    " 3atabase programming" 'omponent and application assembly

    These are not exclusive techniques - they are

    often used together

    *isual programming is an inherent part of mostprototype development systems

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    25/39

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

    %ynamic high"level langages

    .anguages which include powerful data

    management facilities

    !eed a large run-time support system# !ot

    normally used for large system development +ome languages offer excellent U development

    facilities

    +ome languages have an integrated supportenvironment whose facilities may be used in the

    prototype

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    26/39

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

    Choice of prototyping langage

    4hat is the application domain of the problem5

    4hat user interaction is required5

    4hat support environment comes with the

    language5

    3ifferent parts of the system may be

    programmed in different languages# 6owever,

    there may be problems with languagecommunications

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    27/39

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

    %atabase programming langages

    3omain specific languages for business systems based

    around a database management system

    !ormally include a database query language, a screen

    generator, a report generator and a spreadsheet# %ay be integrated with a '&+( toolset

    The language 7 environment is sometimes $nown as a

    fourth-generation language /.0

    'ost-effective for small to medium si8ed businesssystems

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    28/39

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

    %atabase programming

    DB

    programminglanguage

    Interfacegenerator Spreadsheet

    Report

    generator

    Database management system

    Fourth-generation language

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    29/39

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

    Component and application assembly

    Prototypes can be created quic$ly from a set of

    reusable components plus some mechanism to

    9glue1 these component together

    The composition mechanism must includecontrol facilities and a mechanism for component

    communication

    The system specification must ta$e into accountthe availability and functionality of existing

    components

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    30/39

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

    Prototyping with rese

    &pplication level development" (ntire application systems are integrated with the prototype so

    that their functionality can be shared

    " :or example, if text preparation is required, a standard word

    processor can be used

    'omponent level development" ndividual components are integrated within a standard

    framewor$ to implement the system

    " :rame wor$ can be a scripting language or an integrationframewor$ such as '2R)&

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    31/39

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

    #esable component composition

    Componentcomposition

    framework

    Executable

    prototype

    Reusablesoftware

    components

    Control and

    integration code

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    32/39

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

    Compond docments

    :or some applications, a prototype can be created by

    developing a compound document

    This is a document with active elements /such as a

    spreadsheet0 that allow user computations (ach active element has an associated application which

    is invo$ed when that element is selected

    The document itself is the integrator for the different

    applications

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    33/39

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

    Application lin&ing in compond docments

    Compound document

    Word processor Spreadsheet Audio player

    Text 1 Text 2 Text 3

    Text 4 Text 5

    Table 1

    Table 2

    Sound 1

    Sound 2

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    34/39

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

    'isal programming

    +cripting languages such as *isual )asic support

    visual programming where the prototype is

    developed by creating a user interface from

    standard items and associating components withthese items

    & large library of components exists to support

    this type of development

    These may be tailored to suit the specific

    application requirements

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    35/39

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

    'isal programming with rese

    File Edit Views Layout Options Help

    GeneralIndex

    Hypertextdisplay componentDate component

    Range checkingscript

    Tree displaycomponent

    12th January 2000

    3.876

    Draw canvascomponent

    User promptcomponent +

    script

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    36/39

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

    Problems with visal development

    3ifficult to coordinate team-based development

    !o explicit system architecture

    'omplex dependencies between parts of the

    program can cause maintainability problems

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    37/39

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

    User interface prototyping

    t is impossible to pre-specify the loo$ and feel of a user

    interface in an effective way# prototyping is essential

    U development consumes an increasing part of overall

    system development costs

    User interface generators may be used to 9draw1 the

    interface and simulate its functionality with components

    associated with interface entities

    4eb interfaces may be prototyped using a web site editor

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    38/39

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

    (ey points

    & prototype can be used to give end-users a concrete

    impression of the system1s capabilities

    Prototyping is becoming increasingly used for system

    development where rapid development is essential

    Throw-away prototyping is used to understand the

    system requirements

    n evolutionary prototyping, the system is developed by

    evolving an initial version to the final version

  • 7/21/2019 Ch08- To Be Reported by Group7 and Group8

    39/39

    (ey points

    Rapid development of prototypes is essential# This may

    require leaving out functionality or relaxing non-functional

    constraints

    Prototyping techniques include the use of very high-level

    languages, database programming and prototype

    construction from reusable components

    Prototyping is essential for parts of the system such as

    the user interface which cannot be effectively pre-

    specified# Users must be involved in prototype evaluation


Recommended