Sunteți pe pagina 1din 41

SOFTWARE

ENGINEERING
PARADIGMS
CHAPTER II
PARADIGM

A paradigm is the model of a


process. It defines the flow of activities
that occur as the process progresses
from start to end.
SOFTWARE PARADIGM

Software paradigms refer to


the methods and steps which are
taken while designing the software.
SOFTWARE PARADIGM

SOFTWARE DEVELOPMENT
PARADIGM
SOFTWARE DESIGN PARADIGM
PROGRAMMING PARADIGM
SOFTWARE DEVELOPMENT
PARADIGM

This paradigm is known as software engineering paradigm


where all the engineering concepts pertaining to the
development of software are applied
SOFTWARE DEVELOPMENT
PARADIGM

Requirements gathering This step onwards the software


development team works to carry on the project. The team
holds discussions with various stakeholders from problem
domain and tries to bring out as much information as possible
on their requirements.
Software Design
Programming
SOFTWARE DESIGN PARADIGM

A subset of software development paradigm


SOFTWARE DESIGN PARADIGM

Design - After gathering the requirements needed, the


developer will start designing the software product.
Maintenance The software is maintained timely by
updating the code according to the changes taking place in user
end environment or technology.
Programming The programming paradigm is a subset of
software design paradigm.
PROGRAMMING PARADIGM

A subset of software design paradigm


PROGRAMMING PARADIGM

This paradigm is related closely to programming


aspect of software development.
PROGRAMMING PARADIGM

Coding The implementation of software design starts in


terms of writing program code in the suitable programming
language and developing error-free executable programs
efficiently.
Testing Software testing is done while coding by the
developers and thorough testing is conducted by testing experts
at various levels of code such as module testing, program
testing, product testing, in-house testing, and testing the
product at users end.
PROGRAMMING PARADIGM

Integration Software may need to be integrated with the


libraries, databases, and other program(s).
NEEDS 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.
NEEDS OF SOFTWARE ENGINEERING

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.
NEEDS OF SOFTWARE ENGINEERING

Dynamic Nature- The always growing and adapting nature of


software hugely depends upon the environment in which 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.
SOFTWARE ENGINEERING SYSTEMS
ANALYSIS AND DESIGN METHODOLOGIES
RAPID
APPLICATIO
WATERFALL SPIRAL
N
MODEL METHOD
DEVELOPME
NT

4TH GENERATION PROTOTYPING


TECHNIQUES MODEL

RAPID
JOIN APPLICATION WATERFALL
APPLICATION
DEVELOPMENT MODEL
DEVELOPMENT
WATER FALL MODEL OR
SOFTWARE
DEVELOPMENT CYCLE
MODEL
WATER FALL MODEL OR
SOFTWARE DEVELOPMENT
CYCLE MODEL

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 complete. In this
waterfall model, the phases do not overlap.
WATER FALL MODEL OR
SOFTWARE DEVELOPMENT
CYCLE MODEL
All possible requirements of the
REQUIRMEN
REQUIRME system to be developed are
T ANALYSIS
NT captured in this phase and
ANALYSIS documented in a requirement SYSTEM
specification document. DESIGN
This system design helps in IMPLEMENTA
specifying hardware and system TION
SYSTEM
requirements and helps in
DESIGN
defining the overall system
architecture.
With inputs from the system
IMPLE- design, the system is first
MENTATIO developed in small programs
N called units, which are integrated
in the next phase.
WATER FALL MODEL OR
SOFTWARE DEVELOPMENT
CYCLE MODEL
With inputs from the system
REQUIRMEN
design, the system is first
T ANALYSIS
TESTING developed in small programs
called units, which are integrated SYSTEM
in the next phase. DESIGN
All the units developed in the
IMPLEMENTA
implementation phase are integrated
TION
into a system after testing of each DEPLOYME
unit. Post integration the entire NT
system is tested for any faults and TESTING
failures.
There are some issues which
DEPLOYME
come up in the client environment.
NT
MAINTENA To fix those issues, patches are
NCE released. Also to enhance the MAINTENAN
product some better versions are CE
released.
WATER FALL MODEL OR
SOFTWARE DEVELOPMENT
CYCLE MODEL
PRO CON
It
Sallows for
S
it does not allow much
departmentalization and
reflection or revision
control
A schedule can be set with Once an application is in the
deadlines for each stage of testing stage, it is very difficult
development to go back and change
something that was not well-
A product can proceed through documented or thought upon
the development process in the concept stage
model phases one by one
WATER FALL MODEL OR
SOFTWARE DEVELOPMENT
CYCLE MODEL
When to use
?
Requirements are very well known
When it is possible to produce a stable
design
E.g. a new version of an existing product
E.g. porting an existing product to a new
platform
4THGENERATION
TECHNIQUE
4TH GENERATION TECHNIQUE

It enables the software engineer to specify


some characteristic of software at a high
level, the tool then automatically generates
source code based on the developers
specification.

The 4GT paradigm for software engineering


focuses on the ability to specify software
using specialized language forms or a
graphic notation that describes the problem
to be solved in terms that the customer can
understand.
4TH GENERATION TECHNIQUE

The developers used different methods in


REQUIRMEN
REQUIREMEN acquiring information needed such as
T
T GATHERING interviews and observations and
GATHERING
researches.
DESIGN
The gathered data is translated into set of
STRATEGY
presentation that describes data DESIGN
structures, architectures, algorithmic STRATEGY
IMPLEMENTA
procedures and interphase characteristic.
TION USING
4GL
This is the third 4GT wherein the design
IMPLEMENTAI
ON USING
presentation is translated to an artificial
4GL language that result in instruction that
could be executed by the computer.
4TH GENERATION TECHNIQUE

The developers would implement using


REQUIREMEN 4GL which enables them to represent
T GATHERING desired output in a manner that results to
TESTING automatic generation of code to generate
the output. Data structure with relevant
DESIGN
information must exist and be ready
STRATEGY
accessible by the 4GL.
IMPLEMENTA
TION USING
4GL

TESTING
4TH GENERATION TECHNIQUE

PRO CON
it is
S
simplified theprogramming it is lessSflexible that other
process, uses non-procedural languages and programs
languages that encourage users written in 4GLs are generally
and programmers to specify the far less efficient during
results they want program execution that
while the computers determines programs in high-level
the sequence of instruction that languages
will accomplish those result
uses natural languages that
impose no rigid grammatical
rules
4TH GENERATION TECHNIQUE

When to use
?
MAGLAGAY !
MAGLAGAY !
MAGLAGAY !

MAGLAGAY !
PROTOTYPING MODEL
PROTOTYPING MODEL
The Software Prototyping refers to building
software application prototypes which
displays the functionality of the product under
development, but may not actually hold the
exact logic of the original software.

Prototyping is used to allow the users


evaluate developer proposals and try them
out before implementation. It also helps
understand the requirements which are user
specific and may not have been considered
by the developer during product design.
PROTOTYPING MODEL

Requirements A prototyping model begins with


Gathering REQUIRMEN requirements analysis, and the
T requirements of the system are defined in
GATHERING detail. The user is interviewed in order to
know the requirements of the system.
Quick Design When requirements are known, a preliminary
design or quick design for the system is
Building created, it is not a detailed design, however, QUICK
Prototype and includes the important aspects of the
system, which gives an idea of the system to
DESIGN
the user.
BUILDIN Information gathering from quick design
G is modified to form a prototype. It
PROTOTY represents a rough design of the
PE required system.
PROTOTYPING MODEL

Requirements
COSTUMER
Gathering EVALUATIO the proposed system is presented to the
N user for consideration as part of the
PROTOTYP development process.
E
Quick Design
Once the user evaluates the prototype, it
Building
is refined according to the requirements REFINING
Refining .When the user is satisfied with the PROTOTY
Prototype
Prototype
developed prototype, a final system is PE
Costumer developed based on the final prototype.
Evaluation
The final system is thoroughly evaluated
ENGINEER and tested followed by routine
Costumer Satisfied
maintenance on a continuing basis to
Engineer PRODUCT
prevent large-scale failures and to
Product
minimize downtime.
PROTOTYPING MODEL
PRO CON
S
it provides a working model to the if the user S
is not satisfied with the
user early in the process developed prototype, then a new
prototype is developed
enabling early assessment and
This process goes on until a perfect
increasing user confidence, the
prototype evolves. Thus, this model is
developer gains experience and
time consuming and expensive
insight by developing a prototype,
thereby resulting in better if the developer loses focus of the real
implementation of requirements purpose of prototype and compromises on
the quality of the product
it Helps in reducing risks associated Prototyping can lead to false expectations.
with the project and There is a great It often creates a situation where the user
involvement of users in software believes that the development of the
development. system is finished when it is not.
PROTOTYPING MODEL

When to use
? Prototype model should be used when the desired
system needs to have a lot of interaction with the end
users.
Prototyping ensures that the end users constantly work with the
system and provide a feedback which is incorporated in the
prototype to result in a useable system. They are excellent for
designing good human computer interface systems.
Typically, online systems, web interfaces have a very high amount of
interaction with end users, are best suited for Prototype model. It
might take a while for a system to be built that allows ease of use
and needs minimal training for the end user.
THE SPIRAL METHOD
THE SPIRAL METHOD

Spiral Model in software testing is the


testing strategy which works on incremental
and prototype technique. Generally Spiral
Model strategy is followed for the large and
complicated projects where risks are high
and development and testing goes on
incremental basis.

This model is best used for large projects


which involves continuous enhancements.
THE SPIRAL METHOD
Requirements are gathered during
the planning phase. Requirements
PLANNING RISK ANALYSIS
like BRS that is Business
PLANNING
Requirement Specifications and
SRS that is System Requirement
REQUIRMENT specifications
PROTOTYPE Process is undertaken to identify risk
ANALYSIS
and alternate solutions. A prototype is
produced at the end of the risk analysis RISK
phase. If any risk is found during the ANALYSIS
risk analysis then alternate solutions are
DEVELOPMENT suggested and implemented.
& TESTING
In this phase software is
developed, along with testing at
ENGINEERI
the end of the phase. Hence in
ENGINEERING & NG
this phase the development and
EXECUTION
testing is done.
THE SPIRAL METHOD

This phase allows the customer to


PLANNING RISK ANALYSIS COSTUMER evaluate the output of the project to
EVALUATIO date before the project continues to
N the next spiral.
REQUIRMENT
PROTOTYPE
ANALYSIS

COSTUMER DEVELOPMENT
EVALUATION & TESTING

EVALUATION ENGINEERING &


EXECUTION
THE SPIRAL METHOD
PRO CON
S S
when costs and risk evaluation is it is for Long-term project commitment
important, it is for medium to high- unwise because of potential changes
risk projects to economic priorities

it is for Long-term project commitment it is for Long-term project commitment


unwise because of potential changes unwise because of potential changes
to economic priorities to economic priorities

if users are unsure of their needs and it is for Long-term project commitment
id the requirements are complex. unwise because of potential changes
to economic priorities
It is significant changes are expected it is for Long-term project commitment
(research and exploration) unwise because of potential changes
to economic priorities
THE SPIRAL METHOD

When to use
?
Creation of prototype is appropriate
Costs and risk evaluation is
important
For medium to high-risk projects
Users are unsure of their needs
Color picker

S-ar putea să vă placă și