0% found this document useful (0 votes)
12 views19 pages

Lecture1 - 2 3 4

Software Engineering 1-4 Topic

Uploaded by

Irvin Urmeneta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views19 pages

Lecture1 - 2 3 4

Software Engineering 1-4 Topic

Uploaded by

Irvin Urmeneta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Lesson 1 : Introduction

Lesson 2 : Software Development Life Cycle


Lecture 3: Iterative Waterfall Model, Prototyping Model,
Evolutionary Model
Lecture 4: Spiral Model
INTRODUCTION TO SOFTWARE ENGINEERING
The term software engineering is composed of two words, software
and engineering.
Software is more than just a program code. A program is an executable
code, which serves some computational purpose. Software is considered
to be a collection of executable programming code, associated libraries
and documentations. Software, when made for a specific requirement is
called software product.
Engineering on the other hand, is all about developing products, using
well-defined, scientific principles and methods.
INTRODUCTION TO SOFTWARE ENGINEERING
So, we can define software engineering as an engineering branch
associated with the development of software product using well-
defined scientific principles, methods and procedures. The outcome
of software engineering is an efficient and reliable software product.
IEEE defines software engineering as:
The application of a systematic, disciplined, quantifiable approach to
the development, operation and maintenance of software.
INTRODUCTION TO SOFTWARE ENGINEERING
Need Of Software Engineering
The need of software engineering arises because of higher rate of change in
user requirements and environment on which the software is working.

Large software - It is easier to build a wall than to a house or building,


likewise, as the size of software become large engineering has to step to
give it a scientific process.
Scalability- If the software process were not based on scientific and
engineering concepts, it would be easier to re-create new software than to
scale an existing one.
Cost- As hardware industry has shown its skills and huge manufacturing has
lower down the price of computer and electronic hardware. But the cost of
software remains high if proper process is not adapted.
INTRODUCTION TO SOFTWARE ENGINEERING
Need Of Software Engineering
The need of software engineering arises because of higher rate of change in
user requirements and environment on which the software is working.

Dynamic Nature- The always growing and adapting nature of software


hugely depends upon the environment in which the user works. If the nature
of software is always changing, new enhancements need to be done in the
existing one. This is where software engineering plays a good role.
Quality Management- Better process of software development provides
better and quality software product.
INTRODUCTION TO SOFTWARE ENGINEERING
Characterestics Of Good Software
A software product can be judged by what it offers and how well it can be
used. This software must satisfy on the following grounds:

Operational
This tells us how well software works in operations. It can be measured on:
-Budget -Usability
-Efficiency -Correctness
-Functionality -Dependability
-Security -Safety
INTRODUCTION TO SOFTWARE ENGINEERING
Characterestics Of Good Software
A software product can be judged by what it offers and how well it can be
used. This software must satisfy on the following grounds:

Transitional
This aspect is important when the software is moved from one platform to
another:
• Portability
• Interoperability
• Reusability
• Adaptability
INTRODUCTION TO SOFTWARE ENGINEERING
Characterestics Of Good Software
A software product can be judged by what it offers and how well it can be
used. This software must satisfy on the following grounds:

Maintenance
This aspect briefs about how well a software has the capabilities to maintain
itself in the everchanging environment: Portability
• Modularity
• Maintainability
• Flexibility
• Scalability
INTRODUCTION TO SOFTWARE ENGINEERING

In short, Software engineering is a branch of computer science, which uses


well-defined engineering concepts required to produce efficient, durable,
scalable, in-budget and on-time software products
LIFE CYCLE MODEL
A software life cycle model (also called process model) is a descriptive and
diagrammatic representation of the software life cycle.
A life cycle model maps the different activities performed on a software
product from its inception to retirement.

THE NEED FOR A SOFTWARE LIFE CYCLE MODEL

When a software product is being developed by a team there must be a


clear understanding among team members about when and what to do.
Otherwise it would lead to chaos and project failure.
THE NEED FOR A SOFTWARE LIFE CYCLE MODEL

A software life cycle model defines entry and exit criteria for every phase.
A phase can start only if its phase-entry criteria have been satisfied.

So without software life cycle model the entry and exit criteria for a phase
cannot be recognized. Without software life cycle models it becomes
difficult for software project managers to monitor the progress of the
project.
DIFFERENT SOFTWARE LIFE CYCLE MODELS
• Classical Waterfall Model
• Iterative Waterfall Model
• Prototyping Model
• Evolutionary Model
• Spiral Model

1. Classical Waterfall Model


The classical waterfall model is intuitively the most obvious
way to develop software.
Thus, this model can be considered to be a theoretical way of
developing software.
1. Classical Waterfall Model
Classical waterfall model divides the life cycle into the following
phases:
2. Iterative Waterfall Model
To overcome the major shortcomings of the classical waterfall
model, we come up with the iterative waterfall model.
3. Prototyping Model
A prototype is a toy implementation of the system. A prototype usually
exhibits limited functional capabilities, low reliability, and inefficient
performance compared to the actual software.
This is a valuable mechanism for gaining better understanding of the
customer’s needs:
• how the screens might
look like
• how the user interface
would behave
• how the system would
produce outputs
4. Evolutionary Model
It is also called
successive versions
model or incremental
model. At first, a
simple working model
is built. Subsequently
it undergoes functional
improvements & we
keep on adding new
functions till the
desired system is built.
5. Spiral Model
The diagrammatic
representation of this
model appears like a
spiral with many
loops. The exact
number of loops in
the spiral is not fixed.
Each loop of the
spiral represents a
phase of the software
process.
5. Spiral Model
First quadrant (Objective Setting)
• During the first quadrant, it is
needed to identify the
objectives of the phase.
• Examine the risks associated
with these objectives.
Second Quadrant (Risk
Assessment and Reduction)
• A detailed analysis is carried
out for each identified project
risk.
• Steps are taken to reduce the
risks. For example, if there is a
risk that the requirements are
inappropriate, a prototype
system may be developed.
5. Spiral Model
Third Quadrant (Development and
Validation)
• Develop and validate the next
level of the product after
resolving the identified risks.
Fourth Quadrant (Review and
Planning)
• Review the results achieved so
far with the customer and plan
the next iteration around the
spiral.
• Progressively more complete
version of the software gets
built with each iteration around
the spiral.

You might also like