software Engineering

1 Define software Engineering? What is the advantage of software engineering?
IEEE defines software engineering as: the application of a systematic, disciplined, quantifiable
approach to the development, operation and maintenance of software; that is, the application of
engineering to software.
Fritz Bauer, a German computer scientist, defines software engineering as:
engineering is the establishment and use of sound engineering principles in order to obtain
economically software that is reliable and work efficiently on real machines.
Advantage of using software engineering ??????????????????????????
2 What is waterfall model and its advantage and disadvantage?
The Waterfall Model was the first Process Model to be introduced. It is also referred to as
a linear-sequential life cycle model. It is very simple to understand and use.
In a waterfall model, each phase must be completed before the next phase can begin and
there is no overlapping in the phases.
The waterfall Model illustrates the software development process in a linear sequential flow.
This means that any phase in the development process begins only if the previous phase is
advantages of the Waterfall Model are as follows −
Simple and easy to understand and use
Easy to manage due to the rigidity of the model. Each phase has specific deliverables
and a review process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well understood.
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Process and results are well documented.
disadvantages of the Waterfall Model are as follows −
No working software is produced until late during the life cycle.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
It is difficult to measure progress within stages.
Cannot accommodate changing requirements.
Adjusting scope during the life cycle can end a project.
3. What is spiral model and and explain its advantage and disadvantage.
The Spiral Life Cycle Model is a type of iterative software development model which is
generally implemented in high risk projects. It was first proposed by Barry Boehm in his
1986 paper "A Spiral Model of Software Development and Enhancement"
In this system development method, we combine the features of both, waterfall model
and prototype model. In Spiral model we can arrange all the activities in the form of a
spiral and each loop in a spiral represents a development phase.
The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A
software project repeatedly passes through these phases in iterations (called Spirals in this
model). The baseline spiral, starting in the planning phase, requirements are gathered and
risk is assessed. Each subsequent spirals builds on the baseline spiral.
Planning Phase: Requirements are gathered during the planning phase.
Risk Analysis: In the risk analysis phase, a process is undertaken to identify risk
and alternate solutions.
Engineering Phase: In this phase software is developed, along with testing at the
end of the phase.
Evaluation phase: This phase allows the customer to evaluate the output of the
project to date before the project continues to the next spiral.
Advantages of Spiral model:
High amount of risk analysis hence, avoidance of Risk is enhanced.
Good for large and mission-critical projects.
Strong approval and documentation control.
Additional Functionality can be added at a later date.
Software is produced early in the software life cycle.
A highly customized product can be developed using this.
Disadvantages of Spiral model:
Can be a costly model to use.
Risk analysis requires highly specific expertise.
Project’s success is highly dependent on the risk analysis phase.
Doesn’t work well for smaller projects.
It is a complicated approach especially for projects with a clear SRS
Due to various customizations allowed from the client, using the same prototype in other
projects, in future, is difficult.
4 What is v-model ? and explain the advantage and disadvantage ?
The V-model is a type of SDLC model where process executes in a sequential manner in Vshape which may be considered an extension of the waterfall model. It is also known as
Verification and Validation model. It is based on the association of a testing phase for each
corresponding development stage. Development of each step directly associated with the
testing phase. The next phase starts only after completion of the previous phase i.e. for each
development activity, there is a testing activity corresponding to it.
Verification: It involves static analysis technique (review) done without executing code.
It is the process of evaluation of the product development phase to find whether
specified requirements meet.
Validation: is the process to evaluation the software after completion of the
development phase to determine whether software meets the customer expectations
and requirements.
So V-Model contains Verification phases on one side of the Validation phases on the
other side. Verification and Validation phase joined by coding phase in V-shape. So it is
called as V-Model.
Design Phase:
 Requirement Analysis: This phase contains detailed communication with the
customer to understand the requirement and their expectations.
 System Design: This phase contains the system design and the complete
hardware and communication setup for developing product.
 Architectural Design: The data transfer and communication between the
internal modules and with the outside world (other systems) is clearly understood.
 Module Design: In this phase the system break down into small modules, known
as Low-Level Design (LLD).
Testing Phases:
 Unit Testing: These Unit Test Plans are executed to eliminate bugs at code level
or unit level.
Integration testing:Integration testing performs on the Architecture design phase. This
test verifies the communication of modules among themselves.
System Testing :The System Testing test the functional and non-functional requirements
of developed application.
User Acceptance Testing (UAT): UAT verifies that the delivered system meets user’s
requirement and system is ready for use in real time.
Proactive defect tracking – that is defects are found at early stage.
This is a highly disciplined model and Phases are completed one at a time.
V-Model is used for small projects where project requirements are clear.
Simple and easy to understand and use.
Avoids the downward flow of the defects.
Works well for small projects where requirements are easily understood.
Very rigid and least flexible.
High risk and uncertainty.
It is not a good for complex and object-oriented projects.
It is not suitable for projects where requirements are not crear and contains high
risk of changing.
If any changes happen in midway, then the test documents along with
requirement documents has to be updated.
5. Explain the concept of personal software engineering ?
The Personal Software Process (PSP) is a structured software
development process that is intended (planned) to help software
engineers better understand and improve their performance by tracking their
predicted and actual development of code. The PSP was created by Watts
Humphrey to apply the underlying principles of the Software Engineering
Institute's (SEI) Capability Maturity Model (CMM) to the software development
practices of a single developer.
It claims to give software engineers the process skills necessary to work on a team
software process.
The PSP helps software engineers to:
Improve their estimating and planning skills.
Make commitments they can keep.
Manage the quality of their projects.
Reduce the number of defects in their work.
PSP training follows an evolutionary improvement approach: The engineers follow
methods from PSP0 to PSP3 while working on the software with each level they are introduced to
different methods which let them know and measure their performance. The psp consists of following
 Base line personal process (PSP0)
 Personal planning process (PSP1)
 Personal quality management (PSP2)
 Cyclic personal process (PSP3)