Software Engineering
Lecture 5
MUHAMMAD AHMAD
MAHMAD@[Link]
03212131444
CS FACULTY HALL, DURING OFFICE HOURS
Todays Lecture
Prototype Model
RAD Model
Incremental Model
Prototype Model
Prototype
A prototype is the original model, a sample on which to base
future designs
A prototype usually exhibits limited functional capabilities, low
reliability, and inefficient performance compared to the actual
software, because:
A prototype is usually built using several shortcuts.
The shortcuts might involve using inefficient, inaccurate, or dummy
functions.
A prototype usually turns out to be a very basic version of the
actual system.
Prototype Model
The basic idea is that instead of freezing the requirements before a
design or coding can proceed, a throwaway(disposable) prototype is
built to understand the requirements.
A prototype of the actual product is preferred in situations such as:
user requirements are not complete
technical issues are not clear
When to Use Prototype Model
Example 1: User requirements are not complete :
In any application software like billing in a retail shop, accounting in a
firm, etc the users of the software are not clear about the different
functionalities required.
Once they are provided with the prototype implementation, they
can try to use it and find out the missing functionalities.
When to Use Prototype Model
Example 2: Technical issues are not clear:
Suppose a project involves writing a compiler and the development
team has never written a compiler.
In such a case, the team can consider a simple language, try to build
a compiler in order to check the issues that arise in the process and
resolve them.
After successfully building a small compiler (prototype), they would
extend it to one that supports a complete language.
Prototyping
10/3/2019 8
Software Prototyping Types
Throwaway/Rapid Prototyping
Once the actual requirements are understood, the prototype is discarded and the actual
system is developed with a much clear understanding of user requirements.
Evolutionary Prototyping
Using evolutionary prototyping only well understood requirements are included in the
prototype and the requirements are added as and when they are understood.
Incremental Prototyping
It refers to building multiple functional prototypes of the various sub systems and then
integrating all the available prototypes to form a complete system.
Extreme Prototyping
It breaks down web development into three phases, each one based on the preceding
one. 1st phase is a static prototype that consists mainly of HTML pages. In 2nd phase, the
screens are programmed. In 3rd phase the services are implemented.
Advantages and Disadvantages of
Prototype Model
Advantages of Prototype model Disadvantages of Prototype model
Users are actively involved in the development Leads to implementing and then repairing way
of building systems.
Since in this methodology a working model of
the system is provided, the users get a better Practically, this methodology may increase the
understanding of the system being developed. complexity of the system as scope of the
Errors can be detected much earlier. system may expand beyond original plans.
Quicker user feedback is available leading to Incomplete application may cause application
better solutions. not to be used as the full system was designed
Missing functionality can be identified easily
Confusing or difficult functions can be identified
Requirements validation, Quick implementation
of, incomplete, but functional, application.
Rapid Application Development (RAD)
Model
Rapid Application Development (RAD) Model
A software development methodology that uses minimal planning in
favor of rapid prototyping
In RAD model the functional modules are developed in parallel as
prototypes and are integrated to make the complete product for faster
product delivery.
RAD projects follow iterative and incremental model and have small
teams comprising of developers, domain experts, customer
representatives and other IT resources working progressively on their
component or prototype.
The most important aspect for this model to be successful is to
make sure that the prototypes developed are reusable.
RAD Model
RAD Model
Business Model
The business model for the product under development is designed in
terms of flow of information and the distribution of information
between various business channels.
Data Model
The information gathered in the Business Modeling phase is reviewed
and analyzed to form sets of data objects vital for the business.
The attributes of all data sets is identified and defined.
RAD Model
Process Modeling
The data object sets defined in the Data Modeling phase are converted to
establish the business information flow needed to achieve specific business
objectives as per the business model.
Application Generation
The actual system is built and coding is done by using automation tools to
convert process and data models into actual prototypes.
Testing and Turnover
The overall testing time is reduced in RAD model as the prototypes are
independently tested during every iteration.
However the data flow and the interfaces between all the components need
to be thoroughly tested with complete test coverage.
When to Use RAD Model
RAD should be used when there is a need to create a system that
can be modularized in 2-3 months of time
It should be used if there’s high availability of designers for
modeling and the budget is high enough to afford their cost along
with the cost of automated code generating tools.
RAD SDLC model should be chosen only if resources with high
business knowledge are available and there is a need to produce the
system in a short span of time.
RAD Model
Advantages Disadvantages
Reduced development time Bad effect on product if the users cannot
be involved consistently
End user involvement throughout the
life cycle It can require more people
Iteration time can be short with use It requires a system that can be properly
of powerful RAD tools modularized
If project team is familiar with the Technical risks are high.
problem domain thus can deliver full Inapplicable to cheaper projects as cost is
product in a short time period high
Requires user involvement throughout life
cycle
Incremental Model
10/3/2019 18
Incremental Model
Requirements are broken down into multiple standalone modules of
software development cycle.
These cycles are further divided into smaller and more manageable
iterations.
Finally developed modules are integrated with other modules.
During development of each module, waterfall model is followed for
each module development separately.
And each subsequent release of the system adds function to the
previous release until all designed functionality has been implemented.
Incremental
When to use Incremental models?
Requirements of the system are clearly understood
When demand for early release of product arises
When team resources are not very well skilled or trained
When high-risk features and goals are involved
Such model is more in use for web application and product based
companies
Advantages and Disadvantages of
Incremental Model
Advantages Disadvantages
Generates working software quickly and Needs good planning and design.
early during the software life cycle.
Needs a clear and complete definition of
This model is more flexible – less costly to the whole system before it can be broken
change scope and requirements. down and built incrementally.
It is easier to test and debug during a Total cost is higher than waterfall.
smaller iteration.
In this model customer can respond to
each built.
Easier to manage risk because risky pieces
are identified and handled during
iteration.
Recap
Prototype Model
RAD Model
Incremental Model