Software Process Models - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Software Process Models

Description:

A structured set of activities and associated results leading to the production ... For small or medium-size interactive systems ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 25
Provided by: ians103
Learn more at: http://elvis.rowan.edu
Category:

less

Transcript and Presenter's Notes

Title: Software Process Models


1
Software Process Models
  • Software ProcessA structured set of activities
    and associated results leading to the production
    of a software product
  • Software Process Model
  • An abstract representation of a process

2
Generic software process models
  • The waterfall model
  • Process phases are distinct and separate
  • Evolutionary development
  • Process phases are interleaved
  • Formal systems development
  • A mathematical system model is formally
    transformed to an implementation
  • Reuse-based development
  • The system is assembled from existing components

3
Generic software process models
  • The waterfall model
  • Process phases are distinct and separate
  • Evolutionary development
  • Process phases are interleaved
  • Formal systems development
  • A mathematical system model is formally
    transformed to an implementation
  • Reuse-based development
  • The system is assembled from existing components

4
Waterfall model phases
  • Five phases
  • Requirements analysis and definition
  • System and software design
  • Implementation and unit testing
  • Integration and system testing
  • Operation and maintenance
  • Formal sign-off at end of each phase
  • Documentation as product of each phase

5
Waterfall model
6
Waterfall ModelAdvantages
  • State of progress clear
  • Good for project management
  • Engineers know their tasks
  • Development is (relatively) slow and deliberate
  • Results in solid, well-constructed systems

7
Waterfall ModelProblems
  • Difficult (expensive) to accommodate change after
    process is underway
  • Inflexible partitioning of the project into
    distinct stages
  • E.g., difficult to respond to changing customer
    requirements
  • Therefore, model is most appropriate when
    requirements are well-understood

8
Generic software process models
  • The waterfall model
  • Process phases are distinct and separate
  • Evolutionary development
  • Process phases are interleaved
  • Formal systems development
  • A mathematical system model is formally
    transformed to an implementation
  • Reuse-based development
  • The system is assembled from existing components

9
Evolutionary development
10
Evolutionary development
  • Basic idea
  • Build prototype version of system, seek user
    comments, and keep refining until done
  • Other side of formality spectrum from Waterfall
    Model

11
Evolutionary development
  • Two flavors
  • Exploratory development
  • Work with customers and evolve a final system
    from an initial outline specification. Assumes
    well-understood requirements
  • Throw-away prototyping
  • Build straw-man as system to study. Used to
    help develop better requirements.

12
Evolutionary developmentAdvantages
  • Systems developed faster than with Waterfall
  • Particularly useful when requirements less-well
    understood
  • Customer input throughout development yields
    system closer to their (immediate) needs

13
Evolutionary developmentProblems
  • Lack of process visibility
  • Systems often poorly structured
  • Special skills (e.g. in languages for rapid
    prototyping) may be required
  • Applicability
  • For small or medium-size interactive systems
  • For parts of large systems (e.g. the user
    interface)
  • For short-lifetime systems

14
Evolutionary developmentApplicability
  • For small or medium-size interactive systems
  • For parts of large systems (e.g. the user
    interface)
  • For short-lifetime systems

15
Generic software process models
  • The waterfall model
  • Process phases are distinct and separate
  • Evolutionary development
  • Process phases are interleaved
  • Formal systems development
  • A mathematical system model is formally
    transformed to an implementation
  • Reuse-based development
  • The system is assembled from existing components

16
Formal systems development
  • Based on the transformation of a mathematical
    specification through different representations
    to an executable program
  • Transformations are correctness-preserving so
    it is straightforward to show that the program
    conforms to its specification
  • Embodied in the Cleanroom approach to software
    development

17
Formal systems development
18
Formal transformations
19
Formal systems developmentAdvantages
  • Transformations are small, making verification
    tractable
  • Resulting implementations are proven to meet
    specifications, so testing (of components)
    unnecessary
  • Although, overall system characteristics (e.g.
    performance, reliability) still need verification

20
Formal systems developmentProblems
  • Need for specialised skills and training
  • Difficult to formally specify some aspects of the
    system, e.g. user interfaces
  • Development time high (usually not worth the
    time/cost)

21
Formal systems developmentApplicability
  • Critical systems
  • especially those where a safety or security case
    must be made before the system is put into
    operation
  • Critical components within large systems

22
Generic software process models
  • The waterfall model
  • Process phases are distinct and separate
  • Evolutionary development
  • Process phases are interleaved
  • Formal systems development
  • A mathematical system model is formally
    transformed to an implementation
  • Reuse-based development
  • The system is assembled from existing components

23
Reuse-oriented development
  • Based on systematic reuse where systems are
    integrated from existing components or COTS
    (Commercial-off-the-shelf) systems
  • Process stages
  • Component analysis
  • Requirements modification
  • System design with reuse
  • Development and integration
  • This approach is becoming more important but
    still limited experience with it

24
Reuse-oriented development
25
Summary
  • Software processes
  • the activities involved in producing and evolving
    a software system
  • represented in a software process model
  • General activities
  • specification, design and implementation,
    validation, evolution
  • Generic process models
  • Describe the organization of software processes
  • Examples waterfall model, evolutionary
    development, formal systems development,
    reuse-oriented development
Write a Comment
User Comments (0)
About PowerShow.com