1 / 26

An Overview of Software Processes

An Overview of Software Processes. Reference: Software Engineering , by Ian Sommerville, 6 th edition, Chapter 3. Objectives. To introduce the general phases of the software (development) life cycle To describe various generic software process models and their pros and cons.

webbchris
Download Presentation

An Overview of Software Processes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 describe various generic software process models and their pros and cons

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

  4. Requirements • The process of establishing • what services are required of the system • the constraints on the system’s operation and development • The “what” of the software life cycle

  5. A Generic Requirements Process

  6. Design • The process of converting the system specification (requirements) into a software structure that realizes that specification • The “how” of the software life cycle

  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. V-Model of Test 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. Software Process Models • Waterfall model (Royce, 1970) • Prototyping • Throwaway • Evolutionary • Incremental development • Spiral model (Boehm, 1988)

  14. Waterfall Model Requirements Design Implementation Testing Maintenance

  15. Observations • The following phase should not start until the previous phase has finished. • In practice, • Phases overlap • May return to a previous phase • Still widely used, especially on very large projects

  16. Waterfall Model Pros and Cons Pros Cons

  17. Prototyping Requirements Design Design Implementation Implementation Testing Testing Maintenance

  18. Observations • Used for requirements elicitation and validation • A “working” model (prototype) of the final system is developed during requirements • Is an iterative process • Prototype can be thrown away or evolved into the final system (evolutionary prototyping)

  19. Prototyping Pros and Cons Pros Cons

  20. Throwaway vs. Evolutionary Throwaway pros Evolutionary pros

  21. Incremental Development

  22. Observations • Development and delivery is broken down into increments with each increment delivering part of the required functionality. • User requirements are prioritised and the highest priority requirements are included in early increments. • Is an iterative process

  23. Incremental Pros and Cons Pros Cons

  24. Spiral Model

  25. Observations • 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. • Uses prototyping

  26. Things to Think About • What about modifying existing software? • What about using existing software? • In-house modules • COTS (Commercial Off-The-Shelf)

More Related