0% found this document useful (0 votes)
26 views

CH 02

Uploaded by

iqraqui
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

CH 02

Uploaded by

iqraqui
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 43

Software Development Process Models

Course Code: SE211


Lecture # 09-10

By
Dr. ISLAM ZADA

Lecturer in Department of Computer Science & Software Engineering,


International Islamic University, Islamabad.

1
SOFTWARE DEVELOPMENT PROCESS MODEL

1. What is Model?

2. Software Process Model?

All software development can be characterized as problem solving loop in which

four different stages are encountered. These are:

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

Five Phases of Waterfall Model


I. Software Requirement Analysis
II. Design
III. Implementation
IV. Testing
V. Maintenance
I. Requirement Analysis

• S/W Requirement analysis is done to understand the problem , which is to be solve


• Responsible person for this activity is called “Analyst”
- Two major activities in requirement analysis.
1. Problem understanding or analysis
2. Requirement specification
• Problem analysis is a clear understanding of customer needs which will explain the
following
I. Important data and entity in the system
II. Main functions & their purposes
III. Inputs & outputs
- To achieve this goal, information are collected from the clients & the end users as well as by studding
the existing manuals and procedures
I. Requirement Analysis

2. Requirement specification

• After understanding the problem, the requirements are specified in requirement

specification documents called requirement documents

• These documents must specify all functional, behavioral, performance, interface

requirements, the format of the input & output etc.

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?

According to the user needs?


2. Design Phase

• This activity is performed to translate the requirements, collected in first phase

into a logical representation of s/w

• This phase of waterfall model establishes an overall system architecture

It is multiple steps process that focuses on the following four different attributes

i. Data structure

ii. Software architecture

iii. Interface representation

iv. Procedural detail

Design is also documented and becomes a part of the software configuration.


3. Coding/Implementation

• 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

• This phase is very important, because the actual system is produced

• A well-written code can reduce the testing & maintenance effort

• The testing & maintenance cost may be higher than the coding cost
4. Testing

• Once code has been generated, program testing begins.

• Individual program units are tested to ensure that the s/w requirements have been

meet the customer requirements

• The output result is according to customer inputs?

• The main purpose of testing is to detect & remove errors in the software

Different types of testing can be performed, such as:

i. Unit testing

ii. Integration testing

iii. etc
5. Maintenance

• Software undergoes changes after it is delivered to customer

• Changes will accrue may be errors encountered

• It is the longest life cycle phase, because the system is installed and put into a

practical use

Maintenance may includes the following main tasks.

i. Correcting errors that may be accrued after the implementation of s/w

ii. Improvement of the implementation of s/w or system units

iii. Enhancing the system according the new requirements of the customer
Limitations of Waterfall Model

• It is the oldest and the most widely used model

• It may create problems when applied to a large project and complex system

• Intermediate changes can cause confusion in the model

• Working version of the program cannot be available until all the phases have

been completed

• customer must be expert in defining the requirements in advance

• The model requires completion of tasks in predefined sequence, if any of the task

fails to be completed, the next task cannot be started


2. The Prototyping Model

• 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

detail input, processing & output requirements.

• 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.

• This is possible if a prototype of the system to be developed is available.

• A prototype is built that helps to understand the requirements of the system.

• 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

Typical Practices of prototyping approach


2. The Prototyping Model

• 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

determine the requirements.

• 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.

• It provides the overall functionality of the system.

• 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

• RAD is known as the Rapid Application Development Model.

• It is quick adoption of linear sequential model. In which rapid development is achieved

through the reusable. Components.

• It is based on the component-based programing.

• S/W is divided into different components & each team is assigned a component of the

software.

• Then all components are integrated, when completed.


3. The RAD Model

The RAD approach include the following five phases

1. Business Modeling

2. Data Modeling

3. Process Modeling

4. Application Generation

5. Testing & Turnover


3. The RAD Model

The following figure shows the RAD model

Team # 1 Team # 2 Team # 3

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

• In this stage the developers need to study the business environment.

• The information flow among the business function is modeled in a way that answers the following

questions:

I. What information derive the business process?

II. What information is generated?

III. Who generates this information?

IV. Where does the information go?

V. Who process the information?


2. Data Modeling

• At the second stage of RAD model we have to decide that:

I. What are the data objects of business?

II. How many departments are there?

III. What are the relationship between these departments?

• The characteristics of each objects are identified and the relationship between these

objects are defined


3. Process Modeling

• At the third stage of this model, the data models are transformed into the s/w form.

• We have to put it into process.

• The data objects defined in the data modeling phase are transformed to achieve the

information flow necessary to implement a business function.

• 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.

5. Testing and Turnover


• The RAD process makes use of program components.

• Many of the programing components have already been tested.

• This reduce the overall testing time.

• 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 the best approach to handle business information.

• 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 system components are incrementally developed & delivered.

• The user feedback from the delivered system helps the s/w deleper team to design a
perfect system.
1. Incremental Model

• Incremental model is more manageable as compare to others.

• Each linear sequence produce a deliverable increment.

• 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

Analysis Design Coding Testing Increment # 1

Analysis Design Coding Testing Increment # 2

Analysis Design Coding Testing Increment # 3

Visual form of Incremental Model


2. Spiral Model

• The Spiral modal is recent model, proposed by Boehm.

• Activities are organized in a spiral format, it may have many cycles.

• Using the spiral model, product is developed in a series of incremental

versions.

• It provide potential for rapid development of incremental version of the s/w

product.

• After each incremental release, a more complete version of the system is

obtained.
2. Spiral Model

• The spiral model is divided into a number of framework activities also called

task regions, these are as follow:


1. Customer Communication

2. Planning

3. Risk Analysis

4. Engineering

5. Construction & release

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

Iterative Incremental Self-Organizing Emergent

Planned modification of Develop parts of the The set of tools,


The team has the
parts of the system. system separately and techniques, development
responsibility of
Assists with modification integrate. Assists with environment, and
organizing its internal
of design and improving overall requirements emerge in
dynamics.
requirements methodology the process
What Is Agile
 Agile --readiness for motion, nimbleness, activity, dexterity in
motion

 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

Agile software development is a conceptual framework


for software engineering that promotes development
iterations throughout the life-cycle of the project.

Software developed during one unit of time is referred to


as an iteration, which may last from one to four weeks.

Agile methods also emphasize working software as the


primary measure of progress
Agile Software Development: Intro
Characteristics of Agile Software Development
-- Light Weighted methodology
-- Small to medium sized teams
-- vague and/or changing requirements
-- vague and/or changing techniques
-- Simple design
-- Minimal system into production
Characteristics
Modularity
Iterative
Time-bound
Incremental
People-oriented
Collaborative
Existing Agile Methods
Extreme Programming (“XP”)

Agile Unified Process

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

You might also like