Professional Documents
Culture Documents
OF
SOFTWARE ENGINEERING
Reference books:
costs.
development.
Software
Computer programs and associated documentation such as requirements,
design models and user manuals.
Maintainability
Dependability
Efficiency
Acceptability
Software must accepted by the users for which it was designed. This
means it must be understandable, usable and compatible with other
systems.
Software Engineering
Today software testing has become more systematic and for which
standard testing techniques are available.
Heterogeneity
Delivery
Trust
A good life cycle model should unambiguously define the entry and
exit criteria for each phase.
Popular Software Life Cycle Models
Classical Waterfall Model
Iterative Waterfall Model
Prototyping Model
Evolutionary Model
Spiral Model
The RAD Model
The Concurrent Development Model
Component Based Development Model
Formal Methods Model
Unified Process Model
Classical Waterfall Model
Feasibility
Study
Limitations of Classical WFM
similar to a waterfall.
The model assumes that all requirements are defined correctly at the
work starts.
Most real life projects find it difficult to follow the rigid phase
sequence prescribed by the waterfall model to achieve better efficiency
and higher productivity.
A A B A B C
A, B, C are modules of a software product that are incrementally developed and delivered
6/16/2023 Dr.H.S.N.Swamy, DoS in CS, UoM, MGM 31
Calendar Time
6/16/2023 Dr.H.S.N.Swamy, DoS in CS, UoM, MGM 32
The Evolutionary model combines the concepts of the linear
model with the concept of iteration. It delivers the software in
small parts called "increments." The first increment is called the
"core product." It is the basic product meeting the requirements
without any added frills. The successive increments then add to
the functionality of the product.
Customer communication
Planning
Risk analysis
Engineering
Construction and release
Customer evaluation
Each task region in turn consists of a number of task sets. The advantage of
this type of model is that both the developer and the customer are better able
to understand the concept of software evolution, thus leading to a better final
product. The disadvantage of such a model is that it requires expertise in the
field6/16/2023
of risk assessment for the projectDoS
Dr.H.S.N.Swamy, toinbe successful.
CS, UoM, MGM 36
When to use Spiral Model?
When project is large
Cost estimation becomes easy as the It works best for large projects only
prototype building is done in small also demands risk assessment
fragments expertise
There is always a space for customer It is not advisable for smaller project,
feedback it might cost them a lot
The RAD Model
Rapid application development (RAD) is an incremental
software development process model that emphasizes an
extremely short development cycle.
The RAD model is a “high-speed” adaptation of the linear
sequential model in which rapid development is achieved by
using component-based construction.
If requirements are well understood and project scope is
constrained, the RAD process enables a development team to
create a “fully functional system” within very short time
periods (e.g., 60 to 90 days)
Used primarily for information systems applications.
6/16/2023 Dr.H.S.N.Swamy, DoS in CS, UoM, MGM 39
The RAD
Model
Business Modelling
Data Modelling
Process Modelling
Application Generation
Testing and Turnover
Like all process models, the RAD approach has drawbacks:
For large but scalable projects, RAD requires sufficient human
resources to create the right number of RAD teams.
RAD requires developers and customers who are committed to
the rapid-fire activities necessary to get a system complete in
a much abbreviated time frame. If commitment is lacking from
either
6/16/2023 constituency, RAD projects
Dr.H.S.N.Swamy, will
DoS in CS, UoM, fail.
MGM 41
Not all types of applications are appropriate for RAD. If a
system cannot be properly modularized, building the
components necessary for RAD will be problematic. If high
performance is an issue and performance is to be achieved
through tuning the interfaces to system components, the RAD
approach may not work.
• Use-case model.
• Supplementary requirements including non-functional reqrments.
• Analysis model.
• Software architecture description.
• Executable architecture prototype.
• Preliminary design model.
• Revised risk list.
• Project plan including iteration plan, adapted workflows,
milestones, technical work products.
• Preliminary user manual.
Transition phase