Software Development Life Cycle

Post on 14-Nov-2014

1,685 views 4 download

Tags:

description

 

transcript

Life Cycle Models

Saranya.VAP/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 models

Waterfall ModelIncremental Process Models

Incremental ModelRapid Application Development Model

Evolutionary Process ModelPrototyping ModelSpiral Model

Component-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

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

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

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