35
SDLC and Software Process Models Lecture tw0 na Kwabena Sarpong -Prompt Professional Institute of Technology) [email protected]

SDLC and Software Process Models

Embed Size (px)

DESCRIPTION

Software Development Life Cycle and Process Models such as Prototyping , RAD , Waterfall

Citation preview

Page 1: SDLC and Software Process Models

SDLC and Software Process Models

Lecture tw0

Nana Kwabena Sarpong (J-Prompt Professional Institute of Technology)[email protected]

Page 2: SDLC and Software Process Models

Software Development Life Cycle

A software development life cycle is a set of stages which indicates how we could develop software. It usually shows either a descriptive or prescriptive characterization of how software is or should be developed.

Also called SDLC

Page 3: SDLC and Software Process Models

What is SDLC?

SDLC is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software.

Page 4: SDLC and Software Process Models

Typical SDLC Stages

A typical Software Development life cycle consists of the following stages: Stage 1: Feasibility Study Stage 2: Requirements Analysis Stage 3: System Design Stage 4: Development Stage 5: Testing Stage 6: Implementation Stage 7: Maintenance

Page 5: SDLC and Software Process Models

WHY SDLC?

Ensure delivery of high quality systems

Provide strong management controls Maximize productivity

Page 6: SDLC and Software Process Models

Software Process Model

There are various software development life cycle models defined and designed which are followed during software development process. The are also called Software process Models Water Fall Model * Spiral Model V Model Iterative Model Prototyping * RAD(Rapid Application Development) *

Page 7: SDLC and Software Process Models

Waterfall Model

The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model or classic software life cycle or sequential model or traditional waterfall process model .It is very simple to understand and use. In a waterfall model, each phase must be completed before the next phase can beg in and there is no overlapping in the phases

Page 8: SDLC and Software Process Models

Waterfall Model

Page 9: SDLC and Software Process Models

Waterfall Model-Feasibility study

A feasibility study establishes whether or not the project is to proceed. It may be that the system is unnecessary, too expensive or too risky. One approach to a feasibility study is to perform cost-benefit analysis

Page 10: SDLC and Software Process Models

Waterfall - Analysis -Phase

All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification doc. the developer finds out what the user (client or customer) wants the software to do and records the requirements as clearly as possible. The product of this stage is a requirements specification.

Page 11: SDLC and Software Process Models

Waterfall –Design Phase

The requirement specifications from first phase are studied in this phase and system

design is prepared.

Page 12: SDLC and Software Process Models

Waterfall-Coding phase

The detailed designs are converted into instructions written in the programming language. If system is large it is developed into small programs or modules called units . There may be a choice of programming languages, from which one must be selected. The product is the code

Page 13: SDLC and Software Process Models

Waterfall-Testing phase

All units of the system coded are tested separately for errors and failures (unit testing). The overall system is also tested(system testing).

Page 14: SDLC and Software Process Models

Waterfall-Implementation phase

Once all testing is done, the product is deployed in the customer environment or released into the market. At this phase the system is put to use.

Page 15: SDLC and Software Process Models

Waterfall-Maintenance & Review

When the software is in use, sooner or later it will almost certainly need fixing or enhancing. Making these changes constitutes maintenance. Software maintenance often

goes on for years after the software is first constructed. The product of this activity is the modified software

Page 16: SDLC and Software Process Models

Waterfall-Advantages

Organized approach with specific stagesReflects common engineering practices It is documentation driven, that is,

documentation is produced at every stage

Simple and easy to understand and useClearly defined stages.Provides structure to inexperienced staff

Page 17: SDLC and Software Process Models

Waterfall-Disadvantages

Doesn’t cope well with changes required by the client

Development teams might wait for each other

The customer only sees a working version of the product after it has been coded. This may result in disaster if any undetected problems are precipitated to this stage.

All requirements must be known upfront

Page 18: SDLC and Software Process Models

Prototyping

Prototyping is the practice of building an early version of a system which does not necessarily reflect all the features of the final system, but rather those which are of interest.

Page 19: SDLC and Software Process Models

Prototyping

In prototyping, the customer is presented at a very early stage with a working version of the system. (It may not be a complete system, but

it is at least part of the system and it works.) They can check that it does what they want,or specify modifications. The developer amends the system and demonstrates it againand again until it does what the customer wants. Thus the main purpose of prototypingis ensuring that the user’s needs are satisfied

Page 20: SDLC and Software Process Models

Types of Prototype

Throwaway Prototyping Evolutionary Prototyping

Page 21: SDLC and Software Process Models

Throwaway Prototype

In throwaway prototyping the various versions of the system are constructed and then thrown away. (The final system is implemented in some different way.)

A throwaway prototype implements only those requirements that are poorly understood. It is discarded after the desired information is learned

Page 22: SDLC and Software Process Models

Throwaway Prototyping

Throwaway prototyping is sometimes called rapid prototyping and as the name suggests, a rapid prototype should cost very little and take very little time to develop.

Page 23: SDLC and Software Process Models

Evolutionary Prototyping

This type of prototyping is based on the idea of developing an initial implementation,

exposing it to user comment and refining it through repeated stages until an adequate system has been developed

Page 24: SDLC and Software Process Models

Evolutionary Prototyping

Evolutionary Prototyping has a very big advantage over Throwaway Prototyping. The advantage is in the fact that evolutionary prototypes are functional systems. Although they may not have all the features the users have planned, they may be used on an interim basis until the final system is delivered.

Page 25: SDLC and Software Process Models

Advantages of Prototyping

▪ Prototypes may be easily changed or even discarded.▪ Prototyping may improve communication between and among

developers and customers▪ Users may be more satisfied with systems developed using prototyping.▪ A prototype may provide the proof of concept necessary to attract

funding.▪ A prototype may serve as a marketing tool.▪ A prototype may serve as the basis for operational specifications.▪ Early visibility of the prototype may help management assess progress.▪ Exploratory prototyping allows productive work to proceed despite initial

uncertainties.▪ Prototypes may demonstrate progress at an early stage of development.▪ Prototypes may provide early training for future users of the system.▪ Prototyping may prevent unpleasant surprises by calling attention to

incomplete or inconsistent requirements, or to missing functionality.

Page 26: SDLC and Software Process Models

Disadvantages of prototyping

▪ Prototyping may encourage an excess of change requests.▪ Working prototypes may lead management and customers to

believe that the final product is almost ready for delivery.▪ The excellent (or disappointing) performance characteristics of

prototypes may mislead the customer.▪ Customers may not be prepared to provide the level or frequency of

feedback required for iterative prototyping.▪ Customers may not be willing to participate in the iteration cycle

over the long haul▪ Developers may have difficulty writing the back-end code needed to

support the slick front-end interface designed with the prototyping tool.

▪ Due to time and market constraints, system specifications may be frozen before the prototyping process has reached a definitive stage.

▪ During prototyping, the only "design specification" is the prototype itself, which may allow uncontrolled change.

▪ Early prototypes may be of low fidelity, dismissed as toys.

Page 27: SDLC and Software Process Models

RAD(Rapid Application Development)

RAD is a linear sequential software development process model that emphasis an extremely short development cycle using a component based construction approach

Rapid Application Development as “an approach to building computer systems which combines Computer-Assisted Software Engineering (CASE) tools and techniques

Page 28: SDLC and Software Process Models

Phases of RAD

Business Modeling: Data Modeling Process Modeling Application Generation Testing and Turn over

Page 29: SDLC and Software Process Models

Business Modeling

In this phase, define the flow of information within the organization, so that it covers all the functions. Questions like what information drives the business process, what information is generated, who generates it, where does the information go, who process it and so on.

This helps in clearly understand the nature, type ,source and process of information

Page 30: SDLC and Software Process Models

Data Modeling

In this phase, convert the component of the information flow into a set of data objects. Each object is referred as an Entity that are needed to support the business. The attributes (character of each entity) are identified and the relation between these data objects (entities) is defined.

Page 31: SDLC and Software Process Models

Process Modeling

The data object defined in the data modeling phase are transformed to achieve the information flow necessary to implement a business function. In addition adding , deleting, modifying and retrieving the data objects are included in process modeling.

Page 32: SDLC and Software Process Models

Application Generation

In this phase, the generation of the application and coding take place. Using fourth generation programming languages or 4 GL tools is the preferred choice for the software developers

Page 33: SDLC and Software Process Models

Testing and Turn Over

Many of the programming components have already been tested since RAD emphasis reuse. This reduces overall testing time. But new components must be tested and all interfaces must be fully exercised

Resembles the final tasks in the SDLC implementation phase, including data conversion, testing, changeover to the new system, and user training.

Page 34: SDLC and Software Process Models

Advantages of RAD

Due to emphasis on rapid development , it results

in the delivery of fully functional project in short

time period.

It encourages the development of program

component reusable.

Can obtain support from automated tools

and techniques.

Page 35: SDLC and Software Process Models

Disadvantages of RAD

It requires dedication and commitment on the part of the developers as well as the client to meet the deadline. If either party is indifferent in needs of other, the project will run into serious problem.

Its application area is restricted to system that are modular and reusable in nature.

It is not suitable for the applications that have a high degree of technical risk.

It is not suitable for the large projects because they require more manpower for creating multiple RAD groups.