3 Process Examples
3 Process Examples
Engineering
3. Examples of so(ware development processes
DefiniBons: AcBvity and Sprint
Ac1vity
An acBvity is a general term for any part of a project that takes place over Bme
(also known as a task)
• Each step in the so(ware development process can be broken down into
several acBviBes.
Sprint
A sprint is a set period of Bme during which a team completes part of a
so(ware project.
• Each sprint will go through most or all of the process steps.
• A typical sprint might have a team of 6 to 8 people working for 2 to 4 weeks.
IteraBve Refinement
Concept
• Create a prototype system early in the development process.
• Review the prototype with clients and test it with users, to improve
the understanding of the requirements and clarify the design.
• Refine the prototype in a series of iteraBons.
Requirements are hard to understand unBl there is an operaBonal
system, parBcularly with user interfaces.
Mistakes in the requirements are the most expensive to correct.
Example:
• ConverBng a naBonal archive from paper based to computer based.
IteraBve Refinement
Design
Requirements ImplementaBon
Review
Release
Discussion of IteraBve Refinement
Review
may be
conBnuous
IniBal
Requirements Version
Outline Intermediate
Design
DescripBon Versions
ImplementaBon Final
Version
Spiral Development
Spiral development
• Create a base system that has the overall structure of the final product
with dummy stubs for missing components.
• Create a comprehensive set of test cases for all completed
components
• Use a succession of sprints to develop new or improved components,
each with a set of test cases. Add these components to the source
code library.
• On a daily cycle, build the enBre system from the source code library
and run the complete set of test cases.
With spiral development there is always a fully tested system, but the
funcBonality is incomplete.
Example
Developing a new version of an operaBng system.
Spiral Development
Source code
Build enBre
library
New and system from source
Repeat
improved every
components day
Test Run enBre
library test suite
Incremental Release of Online Systems
• The project is divided into a large number of small tasks, known as sprints.
• For each sprint, a team works through a full so(ware development cycle
including planning, requirements analysis, design, coding, tesBng, and
acceptance tesBng, and release.
• Each sprint is completed in a fixed Bme period, e.g., four weeks.
• The size of an sprint is based on team size, e.g., 5-10 people.
Discussion of Agile Development
Requirements
Design
System design
ImplementaBon
Program design
ImplementaBon (coding)
Program design
ImplementaBon (coding)
Program tesBng
SequenBal processes work best when the requirements are well understood
and the design is straighkorward, e.g.,
• Conversions of manual data processing systems where the requirements
were well understood and few changes were made during the development
(e.g., electricity billing).
• New models of a product where the funcBonality is closely derived from an
earlier product (e.g. automaBc braking system for a car).
• PorBons of a large system where some components have clearly defined
requirements and are clearly separated from the rest of the system.
Contracts
In pracBce, many large projects use processes that mix aspects of the
four types of so(ware process. For example:
• With spiral development, new components may be developed using
any of the three other methods.
• User interfaces have to be tested with users. This forces iteraBve
development, even within an agile or sequenBal process.
Mixed Processes: Phased Development
Completed projects should have included all the basic process steps
but ... the development process is always partly evoluBonary.
Risk is lowered by:
• Prototyping key components
• Frequent releases, or dividing large projects into phases
• Early and repeated tesBng with users and customers
• Following a visible so(ware process
• Making use of reusable components
It is never possible to complete each step without provision for revision. This is
known as throwing it over the wall.
Projects: IteraBve Refinement
Design
Requirements
third presentaBon
Review
Release
Project: Agile Development
Requirements
2. Design
System design
Program design
3. ImplementaBon
ImplementaBon (coding)
Program tesBng