Practical 1
Practical 1
Practical 1
4340702
PRACTICAL - 1
AIM - Describe various software development models with appropriate
diagram.
Many life cycle models have been proposed so far. Each of them has some
advantages as well as some disadvantages. A few important and commonly
used life cycle models are as follows:
1) Waterfall Model
This model was originally proposed by Royce (1970).
It is also called ‘traditional waterfall model’ or ‘conventional waterfall model.
This model break down the life cycle into set of phases like:
Feasibility study
Requirement analysis and specification,
Design
Coding and unit testing
Integration and system testing
Maintenance
Introduction to Software Engineering
4340702
1. Feasibility Study
Aim of this phase is to determine whether the system would be financially
and technically feasible to develop the product.
It includes the analysis of the problem definition and collection of relevant
info of input, processing and output data.
Three main issues are concerned with feasibility:
- Technical Feasibility: contains hardware, software, network
capability, reliability and availability.
- Economical Feasibility: contains cost/benefit analysis.
- Operational Feasibility: check the usability. Concerned with
technical performance and acceptance within the organization.
3. Design
The goal of this phase is to convert the requirements acquired in the SRS
into a format that can be coded in a programming language. It includes
high-level and detailed design as well as the overall software architecture.
A Software Design Document is used to document all of this effort (SDD).
Object oriented design approach
In object oriented approach, objects available in the system and
relationships are identified during approach.
Several tools and techniques are used in designing like:
- Flow chart - DFD - Data dictionary
- Decision Table - Decision Tree - Structured English
Once all the modules are coded and tested individually, integration of
different modules is undertaken
The modules are integrated in a planned manner.
Goal of this phase is – to ensure that the developed system works well to
its requirements described in the SRS document.
Basic function of testing is to detect errors. So it is also called ‘Quality
control measure’.
6. Maintenance
It requires max efforts to develop s/w product.
This phase is needed to keep system operational.
Generally, maintenance is needed due to change in the environment or the
requirement of the system.
Phase like:
- Feasibility Study
- Requirement Analysis and Specification
- Design
- Coding and Unit Testing
- Integration & System Testing
- Maintenance
From above figure, we can analyze that at the initial stage, core
module/product is developed. Then by adding customer requirements or
new functionalities the incremental version is built. Each version is
developed using iterative waterfall model.
Advantages
- Each successive version performing more useful work than previous
versions.
- The core modules get tested thoroughly, thereby reducing chance of
errors in final product.
- The model is more flexible and less costly to change the scope and
requirements.
- User gets a chance to experiment with partially development software.
- This model helps finding exact user requirements.
- Feedback providing at each increment is useful for determining the
better final product.
Introduction to Software Engineering
4340702
Disadvantages
- Sometimes it is difficult to subdivide problems into functional units.
- Model can be used for very large problem.
- It needs good planning and design.
Application
- When the problem is very large and user requirement are not well
specified at initial stage.
4) Prototype Model
Prototype is a working physical system or sub system. Prototype is nothing
but a toy implementation of a system.
In this model, before starting actual development, a working prototype of
the system should first be built.
A prototype is actually a partial developed product.
Compared to the actual software, a prototype usually have
- Limited functional capabilities
- Low reliability
- Inefficient performance
Prototype usually built using several shortcuts, and these shortcuts might be
inefficient, inaccurate or dummy functions.
Prototype model is very useful in developing GUI part of system.
Introduction to Software Engineering
4340702
Prototype Model
Advantages:
- A partial product is built at initial stage, so customers can get a chance
to have a look of the product.
- New requirements can be accommodate easily.
- Missing functionalities identified quickly.
- It provides better flexibility in design and development.
- As the partial product is evaluated by the end users, more chance of user
satisfaction.
- Quicker user feedback is available for better solution.
Disadvantages:
- The code for prototype model is usually thrown away. So wasting of time
is there.
- The construction cost of developing the prototype is very high.
- If end user is not satisfied with the initial prototype, he may lose interest
in the final product.
- This model requires extensive participation and involvement of the
customers that is not possible every time.
Application:
- This model used when desired system needs to have a lot of interactions
with end users.
- This type of model generally used in GUI type of development.
Introduction to Software Engineering
4340702
5) Spiral model
This model is proposed by Boehm in 1986.
In application development, spiral model uses fourth generation languages
(4GL) and developments tools.
The diagrammatic representation of this model appears like a spiral with
many loops.
Fig of Spiral model shown below.
1st Quadrant:
Identifying the objectives, identifying their relationships and find the
possible alternative solutions. Objectives like: performance,
functionality, hardware software interface etc.
Also examine the risks associated with these objectives.
2nd Quadrant:
In this, detailed analysis carried out of each identified risk.
Alternate solutions are evaluated and risks are reduces at this quadrat.
3rd Quadrant:
Develop and validate the next level of the product after resolving the
identified risk.
Activities like design, code development, code inspection, testing and
packing are performed.
4th Quadrant:
In this part, review the results achieved so far.
Plan the next iteration around the spiral. Different plans like
development plan, test plan, installation plan are performed.
In spiral model – at any point, radius represents: cost and Angular
dimension represents: progress of the current phase.
At the end, all risks are resolved and s/w is ready to use.
6) RAD model
Full form of RAD is – Rapid Application Development. This model was
proposed by IBM in 1980.
Rapid application development (RAD) is an incremental software
development process model that emphasizes an extremely short
development cycle.
It emphasizes on reuse.
Introduction to Software Engineering
4340702
The RAD model assumes to use the 4th and tools like VB, VC++ and
JAVA etc.
RAD works to reuse existing components or create new once.
In all that automated tools are used to construct the software.
v. Testing and turn over
As RAD uses the components that already been tested so the time
for development and testing is reduced.
Advantages
Application can be developed in a quick time.
This model highly makes use of reusable components.
Reduce time for developing and testing.
Disadvantages
Requirements must be cleared and well understood for this model.
It is not well suited where technical risk is high.
In it, highly skilled and expert developers are needed.
Application
The RAD model is mostly used when the system is modularized
and all the requirements are well defined.
RAD model is used when there is a high availability of personnel
and workers.
RAD SDLC model should be chosen only if resources with high
business knowledge are available.