1 / 22

Software Development The Five Phases

Software Development The Five Phases. Requirements analysis and definition ( Specification ) System and software design Implementation Integration and testing ( Validation ) Operation and maintenance ( Evolution ). Software Development The Five Phases.

thao
Download Presentation

Software Development The Five Phases

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. Software DevelopmentThe Five Phases • Requirements analysis and definition (Specification) • System and software design • Implementation • Integration and testing (Validation) • Operation and maintenance (Evolution) Chapter 3-III: Phases of Software Development

  2. Software DevelopmentThe Five Phases • Requirements analysis and definition (Specification) • System and software design • Implementation • Integration and testing (Validation) • Operation and maintenance (Evolution) Chapter 3-III: Phases of Software Development

  3. Software specification • The process of establishing what services are required and the constraints on the system’s 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?”) Chapter 3-III: Phases of Software Development

  4. Requirements Engineering Chapter 3-III: Phases of Software Development

  5. Software DevelopmentThe Five Phases • Requirements analysis and definition (Specification) • System and software design • Implementation • Integration and testing (Validation) • Operation and maintenance (Evolution) Chapter 3-III: Phases of Software Development

  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 Chapter 3-III: Phases of Software Development

  7. Design process activities • Architectural design • Abstract specification • Interface design • Component design • Data structure design • Algorithm design Chapter 3-III: Phases of Software Development

  8. The Software Design Process Chapter 3-III: Phases of Software Development

  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 Chapter 3-III: Phases of Software Development

  10. Software DevelopmentThe Five Phases • Requirements analysis and definition (Specification) • System and software design • Implementation • Integration and testing (Validation) • Operation and maintenance (Evolution) Chapter 3-III: Phases of Software Development

  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 Chapter 3-III: Phases of Software Development

  12. Software DevelopmentThe Five Phases • Requirements analysis and definition (Specification) • System and software design • Implementation • Integration and testing (Validation) • Operation and maintenance (Evolution) Chapter 3-III: Phases of Software Development

  13. The testing process Chapter 3-III: Phases of Software Development

  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 Chapter 3-III: Phases of Software Development

  15. Testing phases Chapter 3-III: Phases of Software Development

  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. Chapter 3-III: Phases of Software Development

  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 Chapter 3-III: Phases of Software Development

  18. Software DevelopmentThe Five Phases • Requirements analysis and definition (Specification) • System and software design • Implementation • Integration and testing (Validation) • Operation and maintenance (Evolution) Chapter 3-III: Phases of Software Development

  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 Chapter 3-III: Phases of Software Development

  20. Software Evolution (con’t) • Need to revisit design and implementation decisions provide further justification for creation/maintenance of process documentation Chapter 3-III: Phases of Software Development

  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 Chapter 3-III: Phases of Software Development

  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) Chapter 3-III: Phases of Software Development

More Related