An Overview of Software Processes - PowerPoint PPT Presentation

About This Presentation
Title:

An Overview of Software Processes

Description:

The activities of design and implementation are closely related and may be interleaved. ... Process starts with the poorly understood requirements. CMSC 345, ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 31
Provided by: ians116
Category:

less

Transcript and Presenter's Notes

Title: An Overview of Software Processes


1
An Overview ofSoftware Processes
  • Reference Software Engineering, by Ian
    Sommerville, 6th edition, Chapter 3

2
Objectives
  • To introduce the general phases of the software
    development life cycle
  • To introduce the software process model concept
  • To describe different generic process models and
    their pros and cons

3
The Software Process
  • A structured set of activities required to
    develop a software system. These activities
    include
  • Requirements (Specification)
  • Design
  • Implementation (Coding)
  • Testing (Validation)
  • Maintenance (Evolution)
  • A software process model is an abstract
    representation of a process.

4
Requirements
  • The process of establishing
  • what services are required of the system
  • the constraints on the systems operation and
    development

5
A Generic Requirements Process
6
Software Design
  • The process of converting the system
    specification (requirements) into a software
    structure that realizes that specification

7
A Generic Software Design Process
8
Implementation
  • 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.
  • The activities of design and implementation are
    closely related and may be interleaved.

9
Testing
  • Verification and validation is intended to show
    that a system conforms to its specification and
    meets the requirements of the system customer.
  • Involves checking and review processes and system
    testing
  • System testing involves executing the system with
    test cases that are derived from the
    specification of the real data to be processed by
    the system.

10
A Generic Testing Process
11
Generic Testing Planning
12
System Maintenance
  • Software is inherently flexible and can change
    (as opposed to hardware).
  • In the past, there has been a demarcation between
    development and evolution (maintenance). This is
    increasingly irrelevant as fewer and fewer
    systems are completely new.
  • Software engineering should be thought of as an
    evolutionary process where software is
    continually changed over its lifetime in response
    to customer needs.

13
System Evolution
14
Generic Software Process Models
  • The Waterfall model
  • Separate, non-overlapping phases of specification
    and development
  • Evolutionary development
  • Specification and development are interleaved
  • Reuse-based development
  • The system is assembled from some (most likely)
    or all existing components

15
Waterfall Model
16
Waterfall Model Pros and Cons
  • Pros
  • Cons

17
Evolutionary Development
  • Two general types
  • Exploratory development
  • Objective is to work with the customers to evolve
    a final system from an initial outline
    specification. Process starts with the
    well-understood requirements.
  • Throw-away prototyping
  • Objective is to understand the system
    requirements. Process starts with the poorly
    understood requirements.

18
Evolutionary Development
19
Exploratory Development Pros and Cons
  • Pros
  • Cons

20
Throw-away Prototyping Pros and Cons
  • Pros
  • Cons

21
Reuse-oriented Development
  • Based on systematic reuse where systems are
    integrated from existing components or COTS
    (commercial-off-the-shelf) systems
  • This approach is becoming more important, but
    there is still limited experience with it.

22
Reuse-oriented Development
23
Reuse-oriented Development Pros and Cons
  • Pros
  • Cons

24
Process Iteration
  • System requirements ALWAYS evolve in the course
    of a project. So, process iteration where
    earlier stages are reworked is always part of the
    process, especially for large systems.
  • Iteration can be applied to any of the generic
    process models.
  • Examples of two iterative approaches
  • Incremental development
  • Spiral development

25
Incremental Development
  • Rather than deliver the system as a single
    delivery, the development and delivery is broken
    down into increments with each increment
    delivering part of the required functionality.
  • User requirements are prioritized and the highest
    priority requirements are included in early
    increments.
  • Once the development of an increment is started,
    the requirements are frozen, though requirements
    for later increments can continue to evolve.

26
Incremental Development
27
Incremental Development Advantages
  • Customers do not have to wait until the entire
    system is delivered until they can gain value
    from it.
  • Early increments act as a prototype to help
    elicit requirements for later increments.
  • Lower risk of overall project failure
  • The highest priority system services tend to
    receive the most testing.

28
Spiral Development
  • Process is represented as a spiral rather than as
    a sequence of activities with backtracking
  • Each loop in the spiral represents a phase in the
    process.
  • No fixed phases such as specification or design -
    loops in the spiral are chosen depending on what
    is required
  • Risks are explicitly assessed and resolved
    throughout the process.

29
Spiral Model of the Software Process
30
Spiral Model Sectors
  • Objective setting
  • Specific objectives for the phase are identified
  • Risk assessment and reduction
  • Risks are assessed and activities put in place to
    reduce the key risks
  • Development and validation
  • A development model for the system is chosen
    which can be any of the generic models
  • Planning
  • The project is reviewed and the next phase of the
    spiral is planned
Write a Comment
User Comments (0)
About PowerShow.com