Software Development The Five Phases - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Software Development The Five Phases

Description:

Chapter 3-III: Phases of Software Development. 11. Implementation and debugging ... Computer-aided software engineering (CASE) is software to support software ... – PowerPoint PPT presentation

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

less

Transcript and Presenter's Notes

Title: Software Development The Five Phases


1
Software DevelopmentThe Five Phases
  • Requirements analysis and definition
    (Specification)
  • System and software design
  • Implementation
  • Integration and testing (Validation)
  • Operation and maintenance (Evolution)

2
Software DevelopmentThe Five Phases
  • Requirements analysis and definition
    (Specification)
  • System and software design
  • Implementation
  • Integration and testing (Validation)
  • Operation and maintenance (Evolution)

3
Software specification
  • The process of establishing what services are
    required and the constraints on the systems
    operation and development
  • Requirements engineering process
  • Feasibility study (Can we do it on time and
    effectively?)
  • Requirements elicitation and analysis (What does
    it need to do?)
  • Requirements specification (Write it all down.)
  • Requirements validation (Does it all make
    sense?)

4
Requirements Engineering
5
Software DevelopmentThe Five Phases
  • Requirements analysis and definition
    (Specification)
  • System and software design
  • Implementation
  • Integration and testing (Validation)
  • Operation and maintenance (Evolution)

6
Software Design
  • The process of converting the system
    specification into an executable system
  • Software design
  • Design a software structure that realizes the
    specification
  • Implementation
  • Translate design into an executable program
  • Design and implementation are closely related and
    may be interleaved

7
Design process activities
  • Architectural design
  • Abstract specification
  • Interface design
  • Component design
  • Data structure design
  • Algorithm design

8
The Software Design Process
9
Design methods
  • Systematic approaches to developing a software
    design
  • The design is usually documented as a set of
    graphical models
  • Possible models
  • Data-flow model
  • Entity-relation-attribute model
  • Structural model
  • Object models

10
Software DevelopmentThe Five Phases
  • Requirements analysis and definition
    (Specification)
  • System and software design
  • Implementation
  • Integration and testing (Validation)
  • Operation and maintenance (Evolution)

11
Implementation and debugging
  • 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

12
Software DevelopmentThe Five Phases
  • Requirements analysis and definition
    (Specification)
  • System and software design
  • Implementation
  • Integration and testing (Validation)
  • Operation and maintenance (Evolution)

13
The testing process
14
Testing stages
  • Unit testing
  • Individual components are tested
  • Module testing
  • Related collections of dependent components are
    tested
  • Sub-system testing
  • Modules are integrated into sub-systems and
    tested. The focus here 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 check that it is
    acceptable

15
Testing phases
16
Unit/Module Testing
  • Smoke testing
  • Light-weight test of each interface in a unit
    (module). Test that all components exist, not
    that they operate correction
  • Black-box testing (a.k.a. functional testing)
  • Test unit (module) strictly according to its
    specifications (interface description), not its
    implementation.
  • White-box testing (a.k.a. structural testing)
  • Testing using knowledge of implementation.
    Useful for exploring boundary cases. Often
    includes code inspection.

17
Other mechanisms
  • Other process mechanisms to improve quality
  • Design reviews
  • Wherein the design and specification (of your
    system) is subjected to peer review
  • Can assist testing team (if distinct from
    design/programming team) in developing testing
    plans
  • Code reviews
  • Wherein the implementation is subjected to peer
    review
  • Presentation forces programmers to justify
    decisions
  • A surprisingly good way to find programming
    errors
  • Can assist testing team in developing white-box
    tests

18
Software DevelopmentThe Five Phases
  • Requirements analysis and definition
    (Specification)
  • System and software design
  • Implementation
  • Integration and testing (Validation)
  • Operation and maintenance (Evolution)

19
Software Evolution
  • Software is inherently flexible 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

20
Software Evolution (cont)
  • Need to revisit design and implementation
    decisions provide further justification for
    creation/maintenance of process documentation

21
Automated process support (CASE)
  • Computer-aided software engineering (CASE) is
    software to support software development and
    evolution processes
  • Activity automation
  • Graphical editors for system model development
  • Data dictionary to manage design entities
  • Graphical UI builder for user interface
    construction
  • Debuggers to support program fault finding
  • Automated translators to generate new versions of
    a program

22
CASE technology
  • Some improvements, but not as substantial as
    predicted
  • Software engineering requires creative thought -
    this is not readily automatable
  • Software engineering is a team activity and, for
    large projects, much time is spent in team
    interactions. CASE technology does not (yet)
    target group activities (groupware)
Write a Comment
User Comments (0)
About PowerShow.com