Upload
nana-sarpong
View
871
Download
2
Embed Size (px)
DESCRIPTION
Software Development Life Cycle and Process Models such as Prototyping , RAD , Waterfall
Citation preview
SDLC and Software Process Models
Lecture tw0
Nana Kwabena Sarpong (J-Prompt Professional Institute of Technology)[email protected]
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
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.
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
WHY SDLC?
Ensure delivery of high quality systems
Provide strong management controls Maximize productivity
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) *
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
Waterfall Model
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
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.
Waterfall –Design Phase
The requirement specifications from first phase are studied in this phase and system
design is prepared.
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
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).
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.
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
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
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
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.
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
Types of Prototype
Throwaway Prototyping Evolutionary Prototyping
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
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.
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
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.
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.
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.
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
Phases of RAD
Business Modeling: Data Modeling Process Modeling Application Generation Testing and Turn over
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
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.
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.
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
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.
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.
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.