0% found this document useful (0 votes)
51 views24 pages

01 SoftwareProcessModels

The document discusses different software process models including: 1) The waterfall model which organizes activities in a sequential flow from requirements to design to coding to testing. 2) Iterative models which develop the system through repeated cycles of planning, implementation, and evaluation. 3) Agile models like Scrum which are iterative and focus on maintaining a working system through frequent code integration and testing.

Uploaded by

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

01 SoftwareProcessModels

The document discusses different software process models including: 1) The waterfall model which organizes activities in a sequential flow from requirements to design to coding to testing. 2) Iterative models which develop the system through repeated cycles of planning, implementation, and evaluation. 3) Agile models like Scrum which are iterative and focus on maintaining a working system through frequent code integration and testing.

Uploaded by

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

SEG 2106

Software Construction
SOFTWARE PROCESS
MODELS
Outline

• Software project lifecycle


• Black box and white box models
• Waterfall model
• Iterative model
• Agile models
Software Product Lifecycle

• domain analysis
• requirements gathering and modeling
• architecture design and specification
• coding and testing
• delivery and deployment
• maintenance and evolution
• retirement
Software Development Process

• Symptoms of inadequacy: the software crisis


– scheduled time and cost exceeded
– user expectations not met
– poor quality
• The size and economic value of software applications
required appropriate "process models"

Informal
Requirements
Process

Product
Process as a Black Box

• The assumption is that requirements can be fully


understood prior to development, unfortunately the
assumption almost never holds
• Interaction with the customer occurs only at the
beginning (requirements) and end (after delivery)

Informal
Requirements
Process

Product
Process as a White Box

• Reduce risks by improving visibility


• Allow project changes as the project progresses based
on feedback from the customer

Informal
Requirements
Process

Product

feedback
Waterfall Process Model

• Invented in the late 1950s for large air defense


systems, became popular in the 1970s
• Organize activities in a sequential flow
• Standardize the outputs of the various activities
(deliverables)
• Exist in many variants, all sharing sequential flow style
Waterfall Process Model
Domain analysis and feasibility study

Requirements

Design

Coding and module testing

Integration and system testing

Delivery, deployment, and


maintenance
Waterfall Process Model

• Advantages
– Easy to understand, easy to use
– Provides structure to inexperienced staff
– Milestones are well understood
– Sets requirements stability
Waterfall Process Model

• Weaknesses
– All requirements must be known upfront
– Deliverables created for each phase are considered
frozen – inhibits flexibility
– Can give a false impression of progress
– Does not reflect problem-solving nature of software
development – iterations of phases
– Integration is one big bang at the end
– Little opportunity for customer to preview the system
(until it may be too late)
Late Design Breakage
Projects Suitable for Waterfall Model

• Waterfall model is suitable when:


– Requirements are very well defined
– Product definition is stable
– Technology is very well understood
– New version of an existing product (maybe!)
– Porting an existing product to a new platform
Waterfall Process with Feedback
Domain analysis and feasibility study

Requirements

Design

Coding and
module testing

Integration and
system testing

Delivery, deployment, and


maintenance
Rapid Prototyping
Iterative Development Process

• Develop system through repeated cycle (iterations)


• Each cycle is responsible for the development of a small
portion of the solution (slice of functionality)
• Water fall is a special iterative process with only one
cycle
Iterative Development Process

Domain Analysis and


Initial Planning
Update Update Architecture
High Level Requirements and Design
Requirements
Iteration Implementation
Planning Cycle

Evaluation (involving Integration


end user) and Testing

Deployment
Agile Methods

• Dissatisfaction with the overheads involved in software


design methods of the 1980s and 1990s led to the
creation of agile methods
– Focus on the code rather than the design
– Based on an iterative approach to software
development
– Maintain a working system (with reduced
functionality) at all times
• The aim of agile methods is to reduce overheads in the
software process (e.g. by limiting documentation) and
to be able to respond quickly to changing requirements
without excessive rework
Agile Introduction

• https://www.youtube.com/watch?v=vRne1NiCIHQ
• https://www.youtube.com/watch?v=Z9QbYZh1YXY
• https://www.youtube.com/watch?v=XU0llRltyFM
Agile Manifesto
SCRUM Process
Problems with agile methods

• It can be difficult to keep the interest of customers who


are involved in the process
• Team members may be unsuited to the intense
involvement that characterizes agile methods
• Prioritizing changes can be difficult where there are
multiple stakeholders
• Minimizing documentation: almost nothing is captured,
the code is the only authority

You might also like