Presentation is loading. Please wait.

Presentation is loading. Please wait.

CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.

Similar presentations


Presentation on theme: "CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3."— Presentation transcript:

1 CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3

2 CMSC 345, Version 1/03 Objectives l To introduce the general phases of the software (development) life cycle l To describe various generic software process models and their pros and cons

3 CMSC 345, Version 1/03 Software Life Cycle l The phases necessary to develop and maintain a software system. These phases include: Requirements (Specification) Design Implementation (Coding) Testing (Validation) Maintenance (Evolution) l A software process model is an abstract representation of how these phases can be addressed.

4 CMSC 345, Version 1/03 Requirements l The process of establishing what services are required of the system the constraints on the system’s operation and development l The “what” of the software life cycle

5 CMSC 345, Version 1/03 A Generic Requirements Process

6 CMSC 345, Version 1/03 Design l The process of converting the system specification (requirements) into a software structure that realizes that specification l The “how” of the software life cycle

7 CMSC 345, Version 1/03 A Generic Software Design Process

8 CMSC 345, Version 1/03 Implementation l Translating a design into a program and removing errors from that program l Programming is a personal activity - there is no generic programming process. l Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process. l The activities of design and implementation are closely related and may be interleaved.

9 CMSC 345, Version 1/03 Testing l Verification and validation is intended to show that a system conforms to its specification and meets the requirements of the system customer. l Involves checking and review processes and system testing l 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 CMSC 345, Version 1/03 A Generic Testing Process

11 CMSC 345, Version 1/03 V-Model of Test Planning

12 CMSC 345, Version 1/03 System Maintenance l Software is inherently flexible and can change (as opposed to hardware). l 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. l Software engineering should be thought of as an evolutionary process where software is continually changed over its lifetime in response to customer needs.

13 CMSC 345, Version 1/03 Software Process Models l Waterfall model (Royce, 1970) l Prototyping Throwaway Evolutionary l Incremental development l Spiral model (Boehm, 1988)

14 CMSC 345, Version 1/03 Waterfall Model Requirements Design Implementation Maintenance Testing

15 CMSC 345, Version 1/03 Observations l The following phase should not start until the previous phase has finished. l In practice, Phases overlap May return to a previous phase l Still widely used, especially on very large projects

16 CMSC 345, Version 1/03 Waterfall Model Pros and Cons Pros Cons

17 CMSC 345, Version 1/03 Prototyping Requirements Implementation Design Testing Design Implementation Testing Maintenance

18 CMSC 345, Version 1/03 Observations l Used for requirements elicitation and validation l A “working” model (prototype) of the final system is developed during requirements l Is an iterative process l Prototype can be thrown away or evolved into the final system (evolutionary prototyping)

19 CMSC 345, Version 1/03 Prototyping Pros and Cons Pros Cons

20 CMSC 345, Version 1/03 Throwaway vs. Evolutionary Throwaway pros Evolutionary pros

21 CMSC 345, Version 1/03 Incremental Development

22 CMSC 345, Version 1/03 Observations l Development and delivery is broken down into increments with each increment delivering part of the required functionality. l User requirements are prioritised and the highest priority requirements are included in early increments. l Is an iterative process

23 CMSC 345, Version 1/03 Incremental Pros and Cons Pros Cons

24 CMSC 345, Version 1/03 Spiral Model

25 CMSC 345, Version 1/03 Observations l Process is represented as a spiral rather than as a sequence of activities with backtracking l Each loop in the spiral represents a phase in the process. l No fixed phases such as specification or design -- loops in the spiral are chosen depending on what is required l Risks are explicitly assessed and resolved throughout the process. l Uses prototyping

26 CMSC 345, Version 1/03 Things to Think About l What about modifying existing software? l What about using existing software? In-house modules COTS (Commercial Off-The-Shelf)


Download ppt "CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3."

Similar presentations


Ads by Google