Presentation on theme: "Software Life Cycle and Models"— Presentation transcript:
1 Software Life Cycle and Models Rajkumar BuyyaGrid Computing and Distributed Systems LabDept. of Computer Science and Software EngineeringUniversity of Melbourne, Australia
2 Software ProcessSoftware Process defines the way to produce software. It includesSoftware life-cycle modelTools to useIndividuals building softwareSoftware life-cycle model defines how different phases of the life cycle are managed.
3 Phases of Software Life-cycle RequirementsSpecification (Analysis)DesignImplementationIntegrationMaintenanceRetirement
4 Requirements Assumption Concept exploration The software being considered is considered economically justifiable.Concept explorationDetermine what the client needs, not what the client wantsDocument - Requirements Document
5 Specification (Analysis) Phase From the customer requirements identify what to build.Specifications must not beAmbiguousIncompleteContradictoryDocument – Specification Document
6 Design Phase From the specification identify how to build. Design involves two stepsArchitectural Design – Identify modulesDetailed Design – Design each modulesDocument – Architecture Document, Design Document
7 Implementation Phase Implement the detailed design in code. Developer testingUnit testingModule testingDocument – Commented source code
8 Integration Phase Combine the modules and test the product as a whole. Testing includesProduct testingAcceptance testingDocument – Test cases and test results
9 Maintenance Phase Any changes after the customer accepts the system. Maintenance phase is the most expensiveLack of documentationRegression testingDocument – Documented Changes, Regression test cases
10 Retirement Phase Good software is maintained Sometimes software is rewritten from scratchSoftware is now un-maintainable becauseA drastic change in design has occurredThe product must be implemented on a totally newhardware/operating systemDocumentation is missing or inaccurateHardware is to be changed—it may be cheaper to rewritethe software from scratch than to modify itTrue retirement is a rare event
11 Life-Cycle Models Build-and-fix model Waterfall model Rapid prototyping modelIncremental modelExtreme programmingSynchronize-and-stabilize modelSpiral modelObject-oriented life-cycle modelsComparison of life-cycle models
13 NotesMost software is developed using build-and-fix model. Basically there is no model.No specificationsNo designThis model is completely unsatisfactory and should not be adopted.Need life-cycle model“Game plan”PhasesMilestones
15 Notes Output from one phase is fed as input to the next phase. One phase is completed, documented and signed-off before the next phase begins.AdvantagesEach phase is well documented.Maintenance easier.DisadvantagesIf there is a mismatch between what the client wanted and was is built this will not be known till the product is delivered.
17 NotesA prototype of the product is build rapidly and shown to the client before the product is completely built.Advantages :Any mismatches between requirement and the product can be found early.Disadvantages :Sometimes the prototype ends up being the final product which results in quality, maintenance problems.
18 SummarySoftware Engineering is an important discipline due to various aspects.Analysis and Design are two very important phases in the software development lifecycle.
19 ReferenceStephen Schach, Classical and Object-Oriented Software Engineering with UML and Java, Chapter 3, McGraw-Hill, New York, USA.Any other book on software engineering is also fine!