1 / 34

Software Life Cycle

Software Life Cycle. “What happens in the ‘life’ of software”. Lecture Objectives. To look at the ‘life cycle’ of a software To understand the software process and its related elements To relate to the different software engineering paradigms. tools. methods. process model.

ismet
Download Presentation

Software Life Cycle

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 Life Cycle “What happens in the ‘life’ of software” TCS2411 Software Engineering

  2. Lecture Objectives • To look at the ‘life cycle’ of a software • To understand the software process and its related elements • To relate to the different software engineering paradigms TCS2411 Software Engineering

  3. tools methods process model a “quality” focus Software Engineering Layers TCS2411 Software Engineering

  4. Software Process • Activities in software projects • Characterised by a common process framework • Framework activities - task sets • Umbrella activities • “Process maturity” enables development of quality software products TCS2411 Software Engineering

  5. Common process framework • Framework activities • work tasks • work products • milestones & deliverables • QA checkpoints • Umbrella Activities Common Process Framework TCS2411 Software Engineering

  6. Umbrella Activities • Software project management • Formal technical reviews • Software quality assurance • Software configuration management • Document preparation and production • Reusability management • Measurement • Risk management TCS2411 Software Engineering

  7. Process as Problem Solving TCS2411 Software Engineering

  8. The Process Model:Adaptability • the framework activities will always be applied on every project ... BUT • the tasks (and degree of rigor) for each activity will vary based on: • the type of project (an “entry point” to the model) • characteristics of the project • common sense judgment; concurrence of the project team TCS2411 Software Engineering

  9. The Primary Goal:High Quality Remember: High quality = project timeliness Why? Less rework! TCS2411 Software Engineering

  10. The Systematic Process Problem Analysis Design Models Development Solution Testing TCS2411 Software Engineering

  11. Generic Phases • Definition Phase • Focus on ‘what’ the software is • Development Phase • Focus on ‘how’ the software works • Maintenance Phase • Focus on ‘change’ to the software TCS2411 Software Engineering

  12. Definition Phase • Identify information to be processed • Identify system behaviour - functions and performance • Determine constraints, interfaces, validation criteria • Major tasks: • System engineering • Software project planning • Requirements analysis TCS2411 Software Engineering

  13. Development Phase • Define data structures, function implementation, procedural details, interfaces • Translate design to programming language • How testing is performed • Major tasks: • Software design • Code generation • Software testing TCS2411 Software Engineering

  14. Maintenance Phase • Reapplies definition and development phases to existing software • Types of changes: • Correction • Adaptation • Enhancement • Prevention TCS2411 Software Engineering

  15. Waterfall Model TCS2411 Software Engineering

  16. Waterfall Model Characteristics • The classic life cycle - oldest and most widely used paradigm • Activities ‘flow’ from one phase to another • If there are corrections, return to a previous phase and ‘flow’ from there again • Major advantages: Good for planning and well-defined/repeated projects TCS2411 Software Engineering

  17. Problems of Waterfall Model • Real projects often follow the sequence • All requirements may not be stated explicitly by customer • Customer only sees the results after some time • Developers are often delayed at certain phases TCS2411 Software Engineering

  18. Start Requirements gathering and refinement Quick design Building prototype Engineer product Refining prototype Customer evaluation Prototyping Model Stop TCS2411 Software Engineering

  19. Prototyping Model Characteristics • Developer and customer determine objectives and draft requirements • Prototype quickly produced and evaluated by customer • Prototype then refined, and re-evaluated • Process iterated, before final product development • Advantages: Customer participation and better requirements TCS2411 Software Engineering

  20. Problems of Prototyping Model • Problem 1: Customer may see prototype as working model and expects fast results • Problem 2: Developer compromised when producing prototype quickly, e.g. different operating system or programming language TCS2411 Software Engineering

  21. Team #2 Team #1 Business Modeling Business Modeling Data Modeling Process Modeling Data Modeling Application Generation Process Modeling Testing & Turnover Application Generation Testing & Turnover Rapid Application Development (RAD) Time period TCS2411 Software Engineering

  22. RAD Characteristics • “High-speed” version of waterfall model • Primarily for information systems applications • Requirements well-understood, fully functional system produced in short time • The application modularised - major functions can be completed in 3 months • Separate teams complete the functions, then integrated as a whole • Requires human resource and commitment TCS2411 Software Engineering

  23. Incremental Model TCS2411 Software Engineering

  24. Incremental Model Characteristics • Software separated into different “increments” - complete working portions • Focus on delivery of operational product with each increment - can be evaluated • Useful when insufficient staff and can be planned to manage technical risks, e.g. waiting for new hardware TCS2411 Software Engineering

  25. Spiral Model TCS2411 Software Engineering

  26. Spiral Model Characteristics • Originally proposed by Boehm, couples iterative nature of prototyping and the systematic aspects of waterfall model • Software is developed in series of incremental releases • Each iteration produces a more complete product • Better management through risk analysis TCS2411 Software Engineering

  27. Problems of Spiral Model • May be difficult to convince customers that evolution is controllable • Demands risk assessment expertise - major risk will cause problems if not identified • Relatively new and not widely used - cannot determine performance TCS2411 Software Engineering

  28. Component Assembly Model Extract components yes Identify candidate components Look up components in library Available? Construct System no Build components TCS2411 Software Engineering

  29. Component Assembly Characteristics • Use of object-oriented technology • Components - classes that encapsulate both data and algorithms • Components developed to be reusable • Paradigm similar to spiral model, but engineering activity involves components • System produced by assembling the correct components TCS2411 Software Engineering

  30. Fourth Generation Techniques (4GT) TCS2411 Software Engineering

  31. 4GT Characteristics • Use of software tools that allow software engineer to specify s/w characteristics at higher level • The tools generate codes based on specification • More time in design and testing - increase productivity • Tools may not be easy to use, codes generated may not be efficient TCS2411 Software Engineering

  32. Other Process Models • Component assembly model—the process to apply when reuse is a development objective • Concurrent process model—recognizes that different part of the project will be at different places in the process • Formal methods—the process to apply when a mathematical specification is to be developed • Cleanroom software engineering—emphasizes error detection before testing TCS2411 Software Engineering

  33. Conclusion • The paradigm used for development of software depends on a number of factors • People - staff & users • Software product • Tools available • Environment • Existing models makes development process clearer, but they can be evolved to become new paradigms TCS2411 Software Engineering

  34. References • “Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 • “Software Engineering” by Ian Sommerville, Addison-Wesley, 2001 TCS2411 Software Engineering

More Related