Software Life Cycle Models

Post on 11-Apr-2017

41 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

Transcript

Various Software Life Cycles Models

SDLC(SOFTWARE DEVELOPMENT LIFE CYCLE)

OVERVIEW OF SDLCSDLC stands for software development lifecycle. A software development lifecycle is essentially a series of steps, or phases, that provide a model for the development and lifecycle management of an application or piece of software.

STAGES OF SDLCStage 1: Planning and Requirement Analysis

Stage 2: Defining Requirements

Stage 3: Designing the product architecture

Stage 4: Building or Developing the Product

Stage 5: Testing the Product

Stage 6: Deployment in the Market and Maintenance

SDLC ModelsThere are various software development life cycle models defined and designed which are followed during software development processIt may be required to choose the SDLC phases according to the specific needs of the project. 

Following are the most important and popular SDLC models followed in the industry:Waterfall ModelIterative ModelSpiral ModelV-ModelPrototype Model

User Requirements

Software Requirements

Architecture Design

Detailed design & Coding

Testing

Delivery

The WaterfallLifecycle Workflow

Time

User Requirements Document

Software Requirements Document

Architectural DesignDocument

DetailedDesign & Code

phaseoutput

”Swimmingupstream”

Requirement Gathering and analysis: Gathering requirements for the project is the most important part of the SDLC. All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification doc.

System Design:  In this phase the system and software design is prepared from the requirement specifications which were studied in the first phase. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture

Implementation: With inputs from system design, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality which is referred to as Unit Testing.

Integration and Testing : All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures.

Maintenance : There are some issues which come up in the client environment. To fix those issues patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.

ADVANTAGES

1.This model is simple and easy to understand and use.

2.Waterfall model works well for smaller projects where requirements are very well understood.

3.In this model phases are processed and completed one at a time. Phases do not overlap.

DISADVANTAGES

1.Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.

2.High amounts of risk and uncertainty.3.Poor model for long and ongoing projects.

SDLC Iterative Model

An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model.

1. Requirements of the complete system are clearly defined and understood.

2. Major requirements must be defined; however, some functionalities or requested enhancements may evolve with time.

3. There is a time to the market constraint.4. A new technology is being used and is being learnt

by the development team while working on the project.

5. Resources with needed skill set are not available and are planned to be used on contract basis for specific iterations.

6. There are some high risk features and goals which may change in the future.

Advantages1. In iterative model we are building and

improving the product step by step. Hence we can track the defects at early stages. This avoids the downward flow of the defects.

2. In iterative model less time is spent on documenting and more time is given for designing.

DISADVANTAGES1.Each phase of an iteration is rigid with no

overlaps2.Costly system architecture or design issues

may arise because not all requirements are gathered up front for the entire lifecycle

SPIRAL MODEL

The spiral model is similar to the iterative model, with more emphasis placed on risk analysis.The spiral model has four phases:1. Identification2. Design3. Construct or Build4. Evaluation and Risk Analysis

Identification : This phase starts with gathering the requirements. Identification of system requirements, subsystem requirements and unit requirements are all done in this phase.

Design : Design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and final design in the subsequent spirals.

Construct or Build : Construct phase refers to production of the actual software product at every spiral. In this phase software is developed, along with testing at the end of the phase. Hence in this phase the development and testing is done.

Evaluation and Risk Analysis : Risk Analysis includes identifying, estimating,and monitoring technical feasibility and management risks, such as schedule slippage and cost overrun. After testing the build, at the end of first iteration, the customer evaluates the software and provides feedback.

ADVANTAGES 1.High amount of risk analysis hence,

avoidance of Risk is enhanced.2.Good for large and mission-critical projects.3.Strong approval and documentation control.4.Additional Functionality can be added at a

later date.5.Software is produced early in the software

life cycle.

DISADVANTAGES1.Can be a costly model to use.2.Risk analysis requires highly specific

expertise.3.Project’s success is highly dependent on

the risk analysis phase.4.Doesn’t work well for smaller projects.

V Model

V- model means Verification and Validation model. Just like the waterfall model , the V-Shaped life cycle is a sequential path of execution of processes. Each phase must be completed before the next phase begins. Testing of the product is planned in parallel with a corresponding phase of development in V- model.

Advantages

1.Easy to use2.Simple to use3.Hence higher chance of success

over the waterfall model4.Avoids the downward flow of the

defects

DISADVANTAGES

1.Least flexible2.Software is developed during the

implementation phase, so no early prototypes of the software are produced.

3.If any changes happen in midway, then the test documents along with requirement documents has to be updated.

PROTOTYPE MODEL

A prototype is made first and based on it final product is developed.  This prototype is developed based on the currently known requirements. Prototyping is an attractive idea for complicated and large systems for which there is no manual process or existing system to help determining the requirements.It enables to understand customer requirements at an early stage of development. It helps get valuable feedback from the customer and helps software designers and developers understand about what exactly is expected from the product under development.

ADVANTAGES1.Increased user involvement in the product

even before implementation.2.Errors can be detected much earlier.3.Reduces time and cost as the defects can be

detected much earlier.4.Confusing or difficult functions can be

identified

DISADVANTAGES1.Leads to implementing and then repairing

way of building systems.2.Incomplete problem analysis.3.Users may get confused in the prototypes

and actual systems.

THANK YOU

top related