Software Life Cycle

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Software Life Cycle as PDF for free.

More details

  • Words: 1,139
  • Pages: 14
Wake Forest University

Computer Science Department

Software Life Cycle CSC 331/631 V. P. Pauca

Spring 2003

1

Wake Forest University

Computer Science Department

Outline • Software Development Models – – – – – – –

Waterfall model V model Prototyping model Operational specification model Transformational model Phased development models Spiral model

• Summary • References

Spring 2003

2

Wake Forest University

Computer Science Department

The Waterfall Model (Royce 1970) • One development stage should end before the other begins • Milestones and deliverables associated with each process • Validation and verification at every stage • Model focused on documents and artifacts

Requirements Analysis System Design Program Design

Coding Unit & Integration Testing System Testing

• Basis for software development in DoD contracts

Acceptance Testing Operation & Maintenance

Spring 2003

3

Wake Forest University

Computer Science Department

Why not a Waterfall Model? • Provides no guidance on how to handle changes – Does not account for prototyping and iteration

• Presents a manufacturing view of software engineering – Derived from the hardware world

• Does not reflect the way code is really developed

Spring 2003

4

Wake Forest University

Computer Science Department

Software Development in Reality? Requirements Analysis System Design

Operation & Maintenance

Program Design

Acceptance Testing System Testing

• •

Coding Unit & Integration Testing

Thrashing from one activity to the next to gather knowledge about the problem and how the proposed solution addresses it Control thrashing by including activities to enhance understanding – Prototyping to examine specific aspects of the proposed system Spring 2003

5

Wake Forest University

Computer Science Department

V Model (German MoD 1992) Operation & Maintenance

Requirements Analysis

Acceptance Testing

System Design

System Testing Program Design

Unit & Integration Testing Coding



Testing activities (right) are related to analysis and design (left) – –



Iteration is explicitly specified –



Verification: Unit & integration testing used for verification of program design Validation: Acceptance testing is conducted by customer for validation of requirements If problems arise during verification or validation (right), stages on left side can be reexecuted to fix and improve requirements, design, and code

Model focused on activity and correctness Spring 2003

6

Wake Forest University

Computer Science Department

Prototyping Model List of Revisions

Revise Prototype

List of Revisions

User/Customer Review

Prototype Requirements

Prototype Design

System Requirements

• • •

List of Revisions

Prototype System

System Testing

Deliver System

Prototyping allows all or part of a system to be constructed quickly to understand or clarify issues Want to ensure that the developer, user and customer have common understanding of what is needed and what is proposed Overall goal: reducing risk and uncertainty Spring 2003

7

Wake Forest University

Computer Science Department

Operational Specification Model (Zave 1984) Execute & Revise

Operational Specification (problem-oriented)

Transformed Specification (implementationoriented)

System Requirements

• • •

Test

Deliver System

Allows early examination of requirements and their implications System requirements are evaluated or executed to demonstrate and analyze the behavior of the system Allows system functionality and design to be merged – In the waterfall model, functionality and design are clearly separated Spring 2003

8

Wake Forest University

Computer Science Department

Transformational Model (Balzer 1981) Compare with requirements; update as needed

Formal Development Record Sequence of transformations plus rationale for them Transform n

Formal Specification

Transform 2

Test

Transform 1

System Requirements (informal)

• •

Deliver System

Attempts to reduce opportunity for error by eliminating major development steps Applies series of transformations using automated support to change a specification into a deliverable – Data representation, compiling, optimizing

• •

Sequence of transformations and associated decisions kept carefully Relies heavily in availability of formal specification methods Spring 2003

9

Wake Forest University

Computer Science Department

Phased Development Models developers

Development systems Build Release 1

Build Release 2

Build Release 3

users

Time

Use Release 1

Use Release 2

Use Release 3

Production systems

• •

Two systems functioning in parallel: production and development Incremental development – –



Iterative development –



System is partitioned into subsystems by functionality Releases are defined by starting with a subsystem, then adding functionality with each new release Deliver full system, then change functionality of subsystems with each new release

In practice, a combination of incremental and iterative development may be used Can you give some reasons? Spring 2003

10

Wake Forest University

Computer Science Department

Spiral Model (Boehm 1988) Determine goals, alternatives, constraints

Constraints 3

Risk analysis 3

Prototype 4

Constraints 2 Risk analysis 2 Alternatives 3 Prototype 3 Alternatives 2 Al tern Risk analysis 1 Prototype 2 ativ Budget 3 Budget 2 Budget 1 es 1 Prototype 1 int tr a ns Co

s 1

Budget 4

Risk analysis 4

Constraints 4

Alternatives 4

Evaluate alternatives and risks

Development plan Integration and test plan

Requirements, life cycle plan

Concept of separation Validated requirements

re wa ents t f So irem Software u req design

Code

Validated, Verified design Acceptance test

Plan

Detailed design

Unit test System test

Develop and Test Spring 2003

11

Wake Forest University

Computer Science Department

Spiral Model • Model focused in managing, controlling, and minimizing risk • It is like iterative development in some sense – With each iteration, risk analysis weights alternatives in light of requirements and constraints – Prototyping verifies feasibility or desirability before a particular alternative is chosen

Spring 2003

12

Wake Forest University

Computer Science Department

Summary • • •

The waterfall model is the traditional document-driven approach Other models proposed that deal with change, uncertainty and risk in more explicit ways Process modeling – Describe software development processes as programs • Consecutive activities, input and output

– Describe process in terms of states and transitions • UML diagrams

– Describe process using Petri nets • Places, markings, and transitions • Allow nondeterminism and parallelism

• •

Software development models help coordinate collaboration as system is designed and implemented The models allow focusing in particular aspects of development process, e.g. organizational, functional, behavioral, and other aspects Spring 2003

13

Wake Forest University

Computer Science Department

References • • • • • • • •

H. Van Vliet. Software Engineering Principles and Practice. Wiley, West Sussex, UK, 2002 S. L. Pfleeger. Software Engineering Theory and Practice. Second Edition. Prentice Hall. Upper Saddle River, NJ, 2001 W.W. Royce. Managing the development of large software systems: concepts and techniques. In Proceedings IEEE WESCON, pp. 1-9. IEEE, 1970 German Ministry of Defense. V-model: software lifecycle process model. General Preprint No. 250, 1992 P. Zave. The operational versus the conventional approach to software development. Comm. of the ACM, 27 (2), pp. 104-118, 1984 R. Balzer. Transformational implementation: an example. IEEE Trans. on Software Engineering, SE 7 (1), pp. 3-14, 1981 T. Gilb. Principles of Software Engineering Management. Addison-Wesley, 1988 B. W. Boehm. A spiral model of software development and enhancement. IEEE Computer, 21 (5), pp. 61-72, 1988 Spring 2003

14

Related Documents