Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SOFTWARE ENGINEERING
SPRING 2019 (CSSE-3113)
CHANGE !!!
In software projects one thing that is constant:
GOALS OF SOFTWARE ENGINEERING
To produce
high quality
software
at low cost.
SOFTWARE MYTHS
Requirement Analysis
and Definition
System and
Software Design
Implementation
and Unit Testing
Integration and
System Testing
Operation and
Maintenance
WATERFALL MODEL
Requirement Analysis
and Definition
System and
Software Design
Implementation
and Unit Testing
Integration and
System Testing
Operation and
Maintenance
WATERFALL MODEL - ADVANTAGES
This model is simple in use and easy to understand.
Its phases and activities are well defined.
Each phase has specific deliverables.
In this model phases are processed and completed
one at a time. Phases do not overlap.
Waterfall model works well for smaller projects
where requirements are very well understood.
WATERFALL MODEL - DISADVANTAGES
Assumes that the requirements of a system are frozen.
It is very difficult to go back and change something that
was not well‐thought out in the concept stage.
No working software is produced until late during the life
cycle.
High amounts of risk and uncertainty.
Not a good model for complex projects.
Poor model for long and ongoing projects.
Not suitable for the projects with changing requirements.
Costly and require more time, in addition to the detailed
plan.
V-MODEL
V‐Model also known as the Verification & Validation
model.
The V‐model grew out of Waterfall and is characterized
by a corresponding testing phase for each development
stage.
Like Waterfall, each stage begins only after the previous
one has ended.
Instead of moving down in a linear way, the process
steps are bent upwards after the coding phase, to form
the typical V shape.
The major difference between V‐model and waterfall
model is the early test planning in the V‐model.
V-MODEL
Verification Validation
V-MODEL – ADVANTAGES
Simple and easy to use
Each phase has specific deliverables.
Higher chance of success over the waterfall model
due to the development of test plans early on
during the life cycle.
Works well where requirements are easily
understood.
Verification and validation of the product in early
stages of product development.
V-MODEL – DISADVANTAGES
Very inflexible, like the waterfall model.
Adjusting scope is difficult and expensive.
The software is developed during the
implementation phase, so no early prototypes of
the software are produced.
The model doesn’t provide a clear path for
problems found during testing phases.
Costly and required more time, in addition to the
detailed plan.
PROTOTYPING MODEL
It refers to the activity of creating prototypes of
software applications, for example, incomplete
versions of the software program being
developed.
It is used to visualize some component of the
software to limit the gap of misunderstanding the
customer requirements by the development team.
When the final prototype is developed, the
requirements is considered to be frozen.
PROTOTYPING MODEL
Prototyping model has the following types:
• Throwaway prototyping
• Evolutionary prototyping
• Incremental prototyping
• Extreme prototyping
PROTOTYPING MODEL
Throwaway prototyping
• Prototypes that are eventually discarded rather than
becoming a part of the finally delivered software.
PROTOTYPING MODEL
Evolutionary prototyping
• Prototypes that evolve into the final system
through an iterative incorporation of user feedback.
PROTOTYPING MODEL
Incremental prototyping
• The final product is built as separate prototypes. At the
end, the separate prototypes are merged in an overall
design.
PROTOTYPING MODEL
Extreme prototyping
• It is used at the web based applications development
environment.
• It recommends to breaks down web development
into three phases where each phase depends on the
preceding one.
o The first phase is a static prototype that consists mainly of
HTML pages.
o In the second phase, the screens are programmed and fully
functional using a simulated services layer.
o In the third phase, the services are implemented
PROTOTYPING MODEL - ADVANTAGES
Users/clients are actively involved in the development
A working model of the system is provided, from
which the users get a better understanding of the
system being developed.
Errors can be detected much earlier.
Quicker user feedback is available leading to better
solutions.
Missing functionality can be identified easily
Confusing or difficult functions can be identified
Quick implementation of incomplete but functional
application.
PROTOTYPING MODEL - DISADVANTAGES
Leads to implementing and then repairing way of
building systems.
Practically, this methodology may increase the
complexity of the system as scope of the system
may expand beyond original plans.