Assignment 1
Assignment 1
Assignment 1
Total Marks:
Obtained Marks:
Software Engineering
Assignment # 01
Submission Date: 04 March 2021
Instructions: Copied or shown assignments will be marked zero. Late submissions are not
entertained in any case.
Question
….Explain the various types of models used in Software Engineering. ?
Solution:
There are 6 Different Types of Models in Software Engineering and they are :
1. Waterfall Model
This is the most basic software development life cycle process which is followed broadly in
the industry. Here the developers follow a sequence of processes where the processes flow
progressively downwards towards the ultimate goal. It is like a waterfall where there are a
number of phases.
These phases have their own unique functions and goals. There are, in fact, four phases –
requirement gathering and analysis phase, software design, programmed implementation and
testing, maintenance. All these four phases come one after another in the given order.
In the first phase all the possible system requirements for developing a particular software are
noted and analyzed. This in turn depends on the software requirement specifications which
includes detailed information about expectations of the end user. Based on this a Requirement
Specification.
Document is created which acts an input to the next phase, i.e. software design phase. What
needs to be emphasized here is that once you move into the next phase it won’t be possible to
update the requirements. So you must be very thorough and careful about the end-user
requirements.
Advantages
Disadvantages
2. V Model
This model is widely recognized as superior to waterfall model. Here the development and
test execution activities are carried on side by side in the downhill and uphill shape. In this
model, testing starts at the unit level and spreads towards integration of the entire system.
So, SDLC is divided into five phases – unit testing, integration testing, regression testing,
system testing and acceptance testing.
Advantages
Easy to use the model since testing activities like planning and test designing are
done before coding
Saves time and enhances chances of success.
Defects are mostly found at an early stage and downward flow of defects is
generally avoided
Disadvantages
It is a rigid model
Early prototypes of the product are not available since the software is developed
during the implementation phase
If there are changes in the midway, then the test document needs to be updated
3. Agile model
In this SDLC model requirements and solutions evolve through collaboration between various
cross functional teams. This is known as an iterative and incremental model.
Advantages
Disadvantages
In large and complex software development cases it becomes difficult to assess the
effort required at the beginning of the cycle
Due to continuous interaction with the customer, the project can go off track if the
customer is not clear about the goals
4. Spiral model
It is more like the Agile model, but with more emphasis on risk analysis. It has four phases –
planning, risk analysis, engineering and evaluation. Here gathering of requirements and risk
assessment is done at the base level and every upper spiral builds on it.
Advantages
Risk avoidance chance is enhanced due to the importance on risk analysis.
Its a good model for complex and large systems.
Depending on the changed circumstances additional functionalities can be added
later on
Software is produced early in the cycle
Disadvantages
Its a costly model and requires highly specialized expertise in risk analysis
It does not work well in simpler projects
Advantages
With an emphasis on accurate documentation this model is able to resolve risks
associated with changing requirements of the client
Integration takes less time as the process goes on throughout the SDLC.
Disadvantages
The biggest disadvantage is that the team members need to be experts in their
niche.
In big projects such continuous integration, it might give rise to confusions
This is another incremental model like the Agile model. Here the components are developed
parallelly to each other. The developments are then assembled into a product.
Advantages
The development time is reduced due to simultaneous development of components
and the components can be reused
A lot of integration issues are resolved due to integration from the initial stage
Disadvantages
It requires a strong team of highly capable developers with individual efficacy in
identifying business requirements
It is a module based model, so systems that can be modularized can only be
developed in this model
As the cost is high, the model is not suitable for cheaper projects