Top Banner
Life Cycle Models Saranya.V AP/CSE, Sri Vidya College of Engineering & Technology, Virudhunagar
31
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Development Life Cycle

Life Cycle Models

Saranya.VAP/CSE,

Sri Vidya College of Engineering & Technology,Virudhunagar

Page 2: Software Development Life Cycle

Need for life cycle models

• Software development phase is a complex task.

• Break down the development process into phases.

Page 3: Software Development Life Cycle
Page 4: Software Development Life Cycle

Types of life cycle models

Waterfall ModelIncremental Process Models

Incremental ModelRapid Application Development Model

Evolutionary Process ModelPrototyping ModelSpiral Model

Component-Based Process Model.

Page 5: Software Development Life Cycle

1. Waterfall Model- Royce • Process of software designing consists of linear

set of distinct phases.

Page 6: Software Development Life Cycle

• 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).

Page 7: Software Development Life Cycle

• 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.

Page 8: Software Development Life Cycle

• 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.

Page 9: Software Development Life Cycle

2. Incremental Process Models

Page 10: Software Development Life Cycle

2.1 Incremental Model• Combination of linear sequential Model with

the iterative philosophy of prototyping.

Page 11: Software Development Life Cycle

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.

Page 12: Software Development Life Cycle

• 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.

Page 13: Software Development Life Cycle

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.

Page 14: Software Development Life Cycle

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)

Page 15: Software Development Life Cycle

Evolutionary Process Model

Page 16: Software Development Life Cycle

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.

Page 17: Software Development Life Cycle

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.

Page 18: Software Development Life Cycle
Page 19: Software Development Life Cycle

Advantages:• Misunderstanding between developers and customers can be identified.• Confusing user services can be identified.Disadvantages:• designing a prototype Quick rather than quality

Page 20: Software Development Life Cycle

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.

Page 21: Software Development Life Cycle

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.

Page 22: Software Development Life Cycle
Page 23: Software Development Life Cycle

The Risk Analysis task region

Page 24: Software Development Life Cycle

• 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

Page 25: Software Development Life Cycle

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

Page 26: Software Development Life Cycle

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.

Page 27: Software Development Life Cycle

4. Component Based Process Model

• Reuse of Components• Includes:– Building components– Storing – Incorporate with some modifications

Page 28: Software Development Life Cycle

Identity candidate

components

Look up components

in library

Extract components if available

Build components if available

Put new components

in library

Construct nth iteration of

system

Identify suitable componentsModifyReuse

Page 29: Software Development Life Cycle

Computer Based System

• Implemented within the organization for the purpose of improving the efficiency of the org.

• Identify:– Characteristics of the organization– Work systems– People– Development methodologies.

Identify the successful system

Page 30: Software Development Life Cycle

• 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.

Page 31: Software Development Life Cycle

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.