5 - Software Development Processes
5 - Software Development Processes
SOICT
School of Information and Communication Technology
1
10/4/21
Sequence of Processes
Every software project will include these basic steps, in some shape or
form, but:
• The steps may be formal or informal
• The steps may be carried out in various sequences
4
2
10/4/21
3
10/4/21
• Heavyweight Process
• Fully complete each step and have minimal changes and revisions later
• Lightweight Process
4
10/4/21
Heavyweight Lightweight
Slower process Speedy process
Release at the final stage Released as increments
Client negotiation Client collaboration
Following a plan Responding to change
History
10
5
10/4/21
11
11
12
12
6
10/4/21
13
13
14
7
10/4/21
15
15
The Modified Waterfall Model works best when the requirements are
well understood and the design is straightforward
For example:
• Converting a manual data processing systems where the requirements
were well understood
16
8
10/4/21
Discussion
17
17
Iterative Refinement
Concept:
• Requirements are hard to understand until there is an operational
system, particularly with user interfaces.
• System and program design may benefit from prototypes
Process:
• 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
• clarify the design
• Refine the prototype in a series of iterations.
18
18
9
10/4/21
19
19
20
20
10
10/4/21
21
21
22
22
11
10/4/21
23
23
Throw-away
Prototyping
24
24
12
10/4/21
Evolutionary
Prototyping
25
25
Get something working as quickly as possible, for client and user evaluation
26
26
13
10/4/21
Incremental Development
27
27
Ecommerce website
• Search, Product Information, Shopping Basket, Checkout, Favourites,
Customer Review
1 increment = 1 release
28
28
14
10/4/21
3 incrementals:
• 1st:
1st release
29
29
3 incrementals:
• 2nd:
2nd release
30
30
15
10/4/21
3 incrementals:
• 3rd:
3rd release
31
31
32
32
16
10/4/21
Incremental
vs. Iterative
33
Spiral Development
34
34
17
10/4/21
35
35
36
36
18
10/4/21
Risk: any situation that might affect the successful completion of the
project
• For example: What is the risk involved in accessing data from a remote
database system?
• What if the data access might be too slow?
• Risk solution: Building a prototype of the data access subsystem
37
37
• At the end of each spiral, the result will typically be incorporated with
the large base system
38
38
19
10/4/21
Agile Methodology
39
39
12 principals
40
40
20
10/4/21
41
41
42
21
10/4/21
43
43
Scrum – The most widely used agile method for software development
44
44
22
10/4/21
Scrum roles
Scrum Master
• Understand the theory, practices, rules and values of Scrum
• Help others improve interactions to maximize the value by the Scrum
team
Product Owner
• The bridge between the business part and the technical part of the
project
• Responsible for writing user stories and for keeping the Product
backlog up to date
Development Team
• Transform the expressed needs into usable functionalities
• Developers, software architects, functional analyist, graphic designers
45
45
Product Backlog
46
46
23
10/4/21
Product Backlog
47
47
Sprint Backlog
48
48
24
10/4/21
Epic
• A functionality of the product to be developed
• A multiple sets of userstories grouped by categories or themes
User Story
• Not a task, neither a specification
• A statement of a user expectation
Task
• Technical activities that helps respond to user stories
• Tasks should be same sized but may be of different nature: design,
development, test, etc.
49
49
50
50
25
10/4/21
Scrum Meetings
51
51
52
52
26
10/4/21
53
53
54
54
27
10/4/21
Mixed Processes
In practice, many large projects use processes that mix aspects of the
four types of software process
Example:
• A project with well-understood requirements might use a modified
waterfall approach to specify the requirements and system design,
followed by a series of agile sprints
• A project with vague requirements might use iterative refinement to
clarify the requirements, followed by a modified waterfall model to
build the final version
• With spiral development, new components may be developed as a
series of sprints
55
55
56
56
28
10/4/21
57
57
58
58
29
10/4/21
59
59
60
60
30