CH 02
CH 02
By
Dr. ISLAM ZADA
1
SOFTWARE DEVELOPMENT PROCESS MODEL
1. What is Model?
3. Status Quo
4. Problem definition
5. Technical development
6. Solution integration
SOFTWARE DEVELOPMENT PROCESS
MODEL
1. Traditional Software Development Process Model
1. Classical Models
• Waterfall Model/Linear sequential Model
• Prototyping Model
• RAD Model
2. Evolutionary Models
• Incremental Model
• Spiral Model
2. Agile Software development Process Model
• SCRUM
• Extreme Programing (XP)
Waterfall Model/Linear Sequential Model
2. Requirement specification
The s/w requirement analysis will ends with validation of the requirements specified
in the documents.
It will make sure the weather documented requirements are actual requirements?
It is multiple steps process that focuses on the following four different attributes
i. Data structure
• This activity is performed to translate the design into the machine readable form
• Suitable programing language will chosen for generating the code of s/w
• The testing & maintenance cost may be higher than the coding cost
4. Testing
• Individual program units are tested to ensure that the s/w requirements have been
• The main purpose of testing is to detect & remove errors in the software
i. Unit testing
iii. etc
5. Maintenance
• It is the longest life cycle phase, because the system is installed and put into a
practical use
iii. Enhancing the system according the new requirements of the customer
Limitations of Waterfall Model
• It may create problems when applied to a large project and complex system
• Working version of the program cannot be available until all the phases have
been completed
• The model requires completion of tasks in predefined sequence, if any of the task
• The customers & end users usually find it very difficult to express their real requirements.
• Aften, a customer defines a set of general objectives for the software but doesn’t identify the
• It is impossible to predict, how the system will do functions, how it will interact with other sub-
system etc.
• This uncertainty about the system can be reduced with careful requirement analysis & systematic
reviews.
• The prototype is developed based on the currently known requirements by following the design,
coding & testing phases but each of these phases is not done thoroughly.
2. The Prototyping Model
Listen to Development of
customer prototype
Evaluation of
prototype
• By using the prototype, the user/customers feel that the actual system is working.
• The prototype helps the developers to develop and check the real requirements of the system.
• The prototype design is often different from that of the final system.
• It is an attractive idea for a large and complex systems, for, which there is no existing system to
• It is need mot be very costly & can actually reduce the overall development cost.
• The prototype is usually not a complete system and many of the details are not built in the
prototype.
• By using the prototyping model, the testing cost and writing detailed documents is reduced.
Prototyping Model
Benefits
• Prototype only demonstrates the behavior of a certain task or set of tasks. It does not explain
qualities needed at implementation levels.
• Missing user services may be detected.
• The confusing user services may be identified and refined.
• etc.
Drawbacks
• The prototype is usually not a complete system and many of the details are not built in the
prototype.
• Improper programming languages or tools may be selected by developers as the only
concentration is on converting the prototype into actual working of software.
• Developers may not have clear understanding of the system to be built due to skipping
requirement engineering.
1. Traditional Software Development
Shortcomings of Traditional Development
I. High cost and wasted budget
II. Large Documentation
III. Unproductive
IV. Changes are difficult and costly
V. Lack of Management
VI. Lack of Transparency
3. The RAD Model
• S/W is divided into different components & each team is assigned a component of the
software.
1. Business Modeling
2. Data Modeling
3. Process Modeling
4. Application Generation
Business
Business Business
Modeling
Modeling Modeling
Data
Data Data
Modeling
Modeling Modeling
Process
Process Process
Modeling
Modeling Modeling
Application
Application Application
Generation
Generation Generation
Testing &
Testing & Testing &
Turnover
Turnover Turnover
1. Business Modeling
• The information flow among the business function is modeled in a way that answers the following
questions:
• The characteristics of each objects are identified and the relationship between these
• At the third stage of this model, the data models are transformed into the s/w form.
• The data objects defined in the data modeling phase are transformed to achieve the
• Processing descriptions are created for adding, modifying, deleting & retrieving a data
object.
4. Application Generation
• Rather than creating s/w by using conventional 3rd generation programing languages,
the RAD process works to re-use existing program components or create re-usable
components.
• In all cases automated tools are used to facilitate construction of the software.
• New components must be tested & all interfaces must be fully exercised.
Merits of RAD Model
• It is a rapid application development model & the applications can be developed and
delivered to customer in a short time duration.
• It support component based-programing so that testing is easy.
• It is easy to develop application because it uses the already prepared & tested
components.
• Each team is responsible for it’s component to be built. Then all the components are
integrated.
• Large application development is easy because it uses the existing components
whenever needed.
Drawbacks of RAD Model
• For large, but scalable projects, RAD model requires sufficient human resources to
create the right number of RAD teams.
• RAD model requires developers & customers who are committed to the rapid-fire
activities necessary to complete a system in a much abbreviated time frame.
• If commitment is lacking from either constituency, RAD project will fail.
NOTE
• RAD model is not suitable when new application makes use of new technology.
• It is suitable when existing components (that are already prepared & used) & tools are
available.
2. Evolutionary Models
• The evolutionary approach to s/w development is normally more effective than the
classical approach.
• In this approach the software team develops software in different versions or in
incremental fashions.
• The complete version or part of the software is developed & delivered to customer for
evaluating feedback from the customers or users.
• The most important evolutionary s/w process models are following as:
1. Incremental Model
2. Spiral Model
1. Incremental Model
• Incremental model combine the elements of linear sequential model with iterative
philosophy of prototyping model.
• In this model the product is developed and delivered to customer in incremental
fashion.
• A part of the software is developed & delivered to customer for testing.
• The user may experiment with it & provides necessary information at that part of the
software.
• The incremental model is a key part of the development process.
• The user feedback from the delivered system helps the s/w deleper team to design a
perfect system.
1. Incremental Model
• The process flow for any component can fit in the prototyping paradigm.
• EXP: MS Word…………………………………………………….
• The first increment is usually a core product. The customer using the core product,
and gives the feedback on the basis of core product for next component.
• This process model, like prototype model is interactive in nature.
• But unlike the prototyping model, this model focuses on the delivery of an operational
product with each increment.
1. Incremental Model
versions.
product.
obtained.
2. Spiral Model
• The spiral model is divided into a number of framework activities also called
2. Planning
3. Risk Analysis
4. Engineering
6. Customer Evaluation
2. Spiral Model
2. Agile Software Development Process Model
Introduction
Terminology
The Agile Manifesto
Some Agile Methodologies
Summary
References
Key Aspects of any Agile Methodology
Agile Methodologies
Agility
The ability to both create and respond to change in order to profit in
a turbulent business environment
Companies need to determine the amount of agility they need to be
competitive
Agile Software Development
Scrum
Extreme Programming
Most prominent Agile Software development method
Prescribes a set of daily stakeholder practices
“Extreme” levels of practicing leads to more
responsive software.
Changes are more realistic, natural, inescapable.
Scrum
It is an Agile S/w development method for project
management
Characteristics:
Prioritized work is done.
Completion of backlog items
Progress is explained
Agile Software Development