Software Development Life CyclePresentation Transcript
Life Cycle Models Saranya.V AP/CSE,Sri Vidya College of Engineering & Technology, Virudhunagar
Need for life cycle models• Software development phase is a complex task.• Break down the development process into phases.
Types of life cycle modelsWaterfall ModelIncremental Process Models Incremental Model Rapid Application Development ModelEvolutionary Process Model Prototyping Model Spiral ModelComponent-Based Process Model.
1. Waterfall Model- Royce• Process of software designing consists of linear set of distinct phases.
• Stage 1: Feasibility Study – Choose desirable system for designing. • Technical study • Economic study • Schedule study • Operational study • Motivational study• Stage 2: Requirement Analysis and Specifications – Understand the exact requirements of the customer. – This stage produces a large document containing a description of what the system will do without describing bow it will be done. This document is known as “ Software Document Specification” (SRS).• Stage 3:Design – Requirement phase to design phase – To create a basic structure for a given requirement. – Product design and detailed design procedures should be noted using SDD ( Software Design Description).
• Stage 4: Coding – Known as Implementation phase. – SDD is sufficient to begin coding phase. – Transform design specification into machine readable form. – Code generation can be done easily. – Design is implemented as a program module – Each module is tested using unit testing.• Stage 5: Integration and System Testing – Modules are integrated in a planned way – After testing the software is delivered to the customer.
• Stage 6: Software Maintenance – Error correction – Enhancement of capabilities – Optimization (minima and maxima of a function)Advantages:• Smaller projects can be done easily• Phase completion one at the time.Disadvantages:• Difficult for the customer to state all the requirements explicitly.• Sequential flow is difficult to follow.
2. Incremental Process Models
2.1 Incremental Model• Combination of linear sequential Model with the iterative philosophy of prototyping.
2.2 Rapid Application Development (RAD) Model• Do construction of prototypes.• Initiate iterative development.• Merging various structured techniques(data driven information, etc).Phases of RAD:• Business Modeling: regarding business functionalities like information and process)• Data Modeling: information collected from business modeling is refined into a set of data objects. – Attributed identified here.
• Process Modeling: data objects defined in the data modeling phase are transformed to achieve the information flow. – Adding, modifying, deleting.• Application Generation: automated tools are used to facilitate construction of the software• Testing and Turn Over: Reduce overall testing time.
Advantages:• Adaptable to changes• Reduce the project risk• Use short development cycle so user can see the RAD product quickly.• Giving the chance to users to review the product.Disadvantages:• Unknown cost of product.• Not suitable for large scale projects.• Not appropriate when technical risks are high.
3. Evolutionary Process Model• Evolutionary model is designed to accommodate iterative development of a software product.• Requirements may change in subsequent iterations(But when details are not known, some product, functionalities and concept should be delivered)
Evolutionary Process Model
Steps occurs in evolutionary model• Listening to the customer to understand the requirements for the software product.• Engineering, building and modifying the product based on the customer requirements.• Allowing the customer to evaluate the product .Disadvantages:• Not possible to develop fixed cost estimates and static schedules due to uncertainty.
3.1 Prototyping Models• Provides a reduced functionalitySteps to be followed in prototyping model:• Requirements gathering: – Developer and customer meet – Define overall objective• Quick Design: – Objects Visible to user• Building prototype: – Leads to construction of a prototype.• Customer evaluation of prototype: – Prototype is evaluated by the customer.• Refining prototyping: – Refine the requirements to develop the software.• Engineer Product: – Prototype serves as a mechanism for identify software requirements.
Advantages:• Misunderstanding between developers and customers can be identified.• Confusing user services can be identified.Disadvantages:• designing a prototype Quick rather than quality
3.2 Spiral Model - Dr. Barry Boehm• Idea of minimizing risk via the use of prototypes & other means is the concept of spiral model.• Spiral model is a sequence of activities with backtracking. – Each loop in the spiral represents a phase in the process. – Risks are explicitly assessed and resolved throughout the process.
Spiral Model Sectors• Objective setting – Identify the specific objective• Risk assessment and Reduction – Assess the risk and Reduce the key risk• Development and Validation – Choose development models and do validation• Planning – The project is reviewed and the next phase of the spiral is planned.
The Risk Analysis task region
• This model is iterative, starting from the innermost point and proceeding radialy outwards.• Moving outwards on the spiral means moving towards more complete versions of the sw product.• The spiral model is divided into 4 task regions: • Planning : project plan • Risk analysis: identify the risk • Engineering: Required Technical activities • Customer evaluation :Get feedback
Iteration of Spiral Model• 1st task region (Planning) : estimation of cost, schedules, get customer feedback for previous iteration.• 2th task region (Evaluating) : go or no-go decisions• 3th task region (Engineering) : building the product based on the end product.• 4th task region (Customer Evaluation) : Evaluate the end product
Advantages:• Important issues(cost estimation and schedule) are discovered earlier.• Best understanding and high quality• Supports for dynamically changing requirements.• Changes made in one module will not have any impact on another module.Disadvantages:• Limiting reusability• Requirements and designs are not tested• Different for each application• Budget and schedule risk.• Route cause analysis is difficult.
4. Component Based Process Model• Reuse of Components• Includes: – Building components – Storing – Incorporate with some modifications
Identity candidate components Identify suitable componentsConstruct nth Modify Look up iteration of Reuse components system in library Put new Extractcomponents components in library if available Build components if available
Computer Based System• Implemented within the organization for the purpose of improving the efficiency of the org.• Identify: – Characteristics of the organization Identify the – Work systems successful system – People – Development methodologies.
• Complexity of the system: – Due to integration technology – Human activities• Engineers with detailed understanding both of the application domain and computer electronics, software, human factors and communication are needed to provide a holistic approach to system development.
Model Based Development• Models are necessary in system engineering.• Use of models can reduce the number of errors in the design and thus the system, reduce engineering effort and preserve knowledge.• Maintaining models with up-to-date knowledge is a major problem as must systems are not generated from models.