SE-Process Models PDF

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

SOFTWARE

ENGINEERING
SOFTWARE: Software consists of Programs, Documentation of any part of the
program and Operating Procedures to setup and operate the software system.

ENGINEERING: Engineering is all about developing products, using well-defined,


scientific principles and methods.

SOFTWARE ENGINEERING: According to Fritz Bauer, “Software


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.”

IEEE defines software engineering as, “The application of a systematic,


disciplined, quantifiable approach to the development, operation and
maintenance of software.”

SOFTWARE CHARACTERISTICS

1. Software does not wear out.


2. Software is not manufactured.
Software is a one-time development effort and continuous maintenance effort in order
to keep it operational. Making another copy of software does not incur any extra cost
or labour.

3. Reusability of components.

4. Software is flexible.

PROCESS MODELS (SOFTWARE LIFE CYCLE MODEL)

A life cycle model represents all the activities required to make a software product transit
through its life cycle phases. It also captures the order in which these activities are to be
undertaken.
Different life cycle models may map the basic development activities to phases in different
ways. Thus, no matter which life cycle model is followed, the basic activities are included in
all life cycle models though the activities may be carried out in different orders in different life
cycle models.
1. WATERFALL MODEL (also known as LINEAR SEQUENTIAL MODEL)
Feasibility study - The main aim of feasibility study is to determine whether it would
be financially and technically feasible to develop the product.
Requirements analysis and specification: - The aim of the requirements analysis and
specification phase is to understand the exact requirements of the customer and to
document them properly. This phase consists of two distinct activities, namely
• Requirements gathering and analysis
• Requirements specification
The goal of the requirements gathering activity is to collect all relevant information
from the customer regarding the product to be developed. This is done to clearly
understand the customer requirements so that incompleteness and inconsistencies are
removed.
The requirements analysis activity is begun by collecting all relevant data regarding the
product to be developed from the users of the product and from the customer through
interviews and discussions. And then the requirements are written in the document
known as SRS (Software Requirement Specification).
Design: - The goal of the design phase is to transform the requirements specified in the
SRS document into a structure that is suitable for implementation in some programming
language. In technical terms, during the design phase the software architecture is
derived from the SRS document.
Coding and unit testing: - The purpose of the coding phase (sometimes called the
implementation phase) of software development is to translate the software design into
source code. Each component of the design is implemented as a program module. It
involves testing each module in isolation as this is the most efficient way to debug the
errors identified at this stage.

Maintenance: -Maintenance of a typical software product requires much more than the
effort necessary to develop the product itself.

Its major drawback is it is applicable only to small size products as it is difficult to


define all the requirements in the beginning of the project.

2. ITERATIVE ENHANCEMENT MODEL


In this model, feedback paths are provided for error correction as & when detected later
in a phase.
The advantage of this model is that there is a working model of the system at a very
early stage of development which makes it easier to find functional or design flaws.
Finding issues at an early stage of development enables to take corrective measures in
a limited budget.
The disadvantage with this SDLC model is that it is applicable only to large and bulky
software development projects. This is because it is hard to break a small software
system into further small modules.

3. PROTOTYPING MODEL

A prototype is a toy implementation of the system. A prototype usually exhibits limited


functional capabilities when compared to the actual software.
A prototype of the actual product is preferred in situations such as:
• User requirements are not complete
• Technical issues are not clear.

4. EVOLUTIONARY MODEL
In this model firstly a simple working model is built. Subsequently it undergoes
functional improvements & new functions are added till the desired system is built.
Applications:
Large projects where you can easily find modules for incremental implementation.
Often used when the customer wants to start using the core features rather than waiting
for the full software.
Advantages:
• User gets a chance to experiment partially developed system
• Reduce the error because the core modules get tested thoroughly.
Disadvantages:
• It is difficult to divide the problem into several versions that would be acceptable
to the customer which can be incrementally implemented & delivered.

5. SPIRAL MODEL (also known as META MODEL)


This model was proposed by Barry Boehm. Each loop of the spiral represents a phase
of the software process. For example, the innermost loop might be concerned with
feasibility study, the next loop with requirements specification, the next one with
design, and so on. Each phase in this model is split into four sectors (or quadrants).

First quadrant (Objective Identification)


• 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.

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.

6. RAPID APPLICATION DEVELOPMENT (RAD) MODEL

This model was introduced by IBM in 1980. It involves active participation of the user
or the customer throughout the process.
The process starts by building a rapid prototype and it is given to the user for the
evaluation. The user then provides feedback and then the prototype is refined.

Cut over phase incorporates testing by the user , installation of the system and user
training.

You might also like