SW Engg Intro 2.1
SW Engg Intro 2.1
Introduction
(Unit 1 – Part 1)
Dr. Najumudheen E S F
Software
In theory, the failure rate curve for software should take the form
of the “idealized curve”
• Undiscovered defects will cause high failure rates early in the life of
a program. However, these are corrected, and the curve flattens.
The idealized curve is an oversimplification of actual failure
models for software.
However, the implication is clear - software doesn’t wear out. But
it does deteriorate!
9/4/2023 Dr. Najumudheen E S F, Software Engineering 5
Failure Curves for Software (2)
Software Engineering
The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of
software; That is, the application of engineering to software.
The study of approaches related to the above process
Software Engineering encompasses
A process,
A collection of methods (practice), and
An array of tools that allow professionals to build high-quality
computer software.
Software engineers apply the software engineering
process.
9/4/2023 Dr. Najumudheen E S F, Software Engineering 9
Software Engineering – Introduction (2)
Software Process
The systematic approach that is used in software engineering
The set of activities, actions, and tasks that are performed to
create some work product
• An activity strives to achieve a broad objective
– Example: Communication with stakeholders
– It is applied regardless of the application domain, size of the
project, complexity of the effort, etc.
• An action encompasses a set of tasks that produce a major work
product
• A task focuses on a small, but well-defined objective that produces
a tangible outcome
– Example: Conducting a unit test
System prototypes
Allow potential users to see how well the system supports their
work.
They may get new ideas for requirements and find areas of
strength and weakness in the software.
They may then propose new system requirements
A system prototype
May be used while the system is being designed to carry out
design experiments to check the feasibility of a proposed design.
Example: A database design may be prototyped and tested to
check that it supports efficient data access for the most common
user queries
Prototyping Vs Spiral
While the prototyping model provides explicit support for risk
handling, the risks are assumed to have been identified
completely before the start of the project.
This is required since the prototype is constructed only at the
start of the project.
In contrast, in the spiral model, prototypes are built at the start of
every phase.
Each phase of the model is represented as a loop
• In each loop, one or more features of the product are elaborated
and analyzed, and the risks at that point of time are identified and
are resolved through prototyping.
Based on this, the identified features are implemented.