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

5 - Software Development Processes

The document discusses different software development processes, including the waterfall model, iterative refinement, and agile development. It provides details on the waterfall model, noting its advantages of separating tasks, process visibility, and quality control, but also its disadvantage that it is not flexible enough to changes. The modified waterfall model allows for some iteration. Iterative refinement involves quickly building prototypes and getting user feedback in iterations to improve requirements understanding and system design.

Uploaded by

Cuong Nguyen
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)
22 views

5 - Software Development Processes

The document discusses different software development processes, including the waterfall model, iterative refinement, and agile development. It provides details on the waterfall model, noting its advantages of separating tasks, process visibility, and quality control, but also its disadvantage that it is not flexible enough to changes. The modified waterfall model allows for some iteration. Iterative refinement involves quickly building prototypes and getting user feedback in iterations to improve requirements understanding and system design.

Uploaded by

Cuong Nguyen
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/ 30

10/4/21

SOICT
School of Information and Communication Technology

1
10/4/21

IT3180 – Introduction to Software


Engineering
5 – Software Development Processes

Sequence of Processes

Lecture 3 introduced several process steps:


• Requirements
• User Interface Design
• System Design
• Program development (design and coding)
• Acceptance and release

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

A software development process or methodology is a systematic way of


combining these steps to build a software system

Software Development Process


In this lecture, we look at four categories of software development
processes:
• Waterfall
• Complete each process step before beginning the next
• Iterative refinement
• Go quickly through all the steps to create a rough system, then repeat them to
improve the system
• Spiral
• A variant of iterative refinement in which new and updated components are
added to the developing system as they are completed
• Agile development:
• Small increments of software are developed in a sequence of sprints, each of
which creates deployable code
6

3
10/4/21

Heavyweight and Lightweight Software Development

• Heavyweight Process

• Fully complete each step and have minimal changes and revisions later

• Each step is fully documented before beginning the next

• Example: waterfall or modified waterfall

Heavyweight and Lightweight Software Development

• Lightweight Process

• Expectation that changes will be made based on experience

• Minimal intermediate documentation

• Only the final system will be documented

• Example: Agile Software Development

4
10/4/21

Heavyweight vs. Lightweight Methodologies

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

Software engineering became a discipline, dated from the early 1970s


At that time:
• Most computer systems were conversions of systems that had
previously been done manually (billing, airline reservation etc.)
• The requirements were well understood
• Many system followed the same architecture, Master File Update
• The system design was well understood
• Coding was tedious with none of the modern languages and tools
• It was important to have a good program design before coding

The factors led to the Waterfall Model of software development


10

10

5
10/4/21

The Waterfall Model

11

11

Discussion of the Waterfall Model

The waterfall model is a heavyweight process with full documentation


of each process step
Avantages:
• Separation of tasks
• Process visibility
• Quality Control at each step
• Cost monitoring at each step
Disadvantages:
• In practice, each stage in the process reveals new understanding of the
previous stages, which often requires the earlier stages to be revised

12

12

6
10/4/21

Discussion of the Waterfall Model

The Waterfall model is not flexible enough!

13

13

Discussion of the Waterfall Model


• A pure sequential model is not possible
• The plan must allow for some form of iteration
Examples:

• Does the Feasibility Study can create a proposed budget and


schedule?

• Detailed design and implementation reveal gaps in the requirements


specification

• What if the client changes requirements or what if the development


team decides to change the technology?
14

14

7
10/4/21

Modified Waterfall Model

15

15

When to use the Modified Waterfall model

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

• New version of a system where the functionality is closely derived


from an earlier product

• Portions of a large system where some components have clearly


defined requirements and are clearly separated from the rest of the
system
16

16

8
10/4/21

Discussion

Consider the following case study:


• A web-based banking application has been developed for two groups
of users: personal user and enterprise user of the bank X. Now, the
bank desired to develop a mobile application for personal user. They
apply the modified waterfall model.
• Give at least 3 reasons why the modified waterfall model is appropriate
in this case study.

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

Iterative refinement: an example (1)

Problem: Add graphics package to a programming environment


Requirements:
• The client was unsure of several important requirements
• E.g., syntax for how to manage coordinates across different objects
Process
• Build a prototype version with a preprocessor and preliminary run-time
package
• Have several iterations of development
• The final iteration is the complete version of package

19

19

Iterative refinement: an example (2)

Problem: Add graphics package to a programming environment


Requirements:
• The client was unsure of several important requirements
• E.g., syntax for how to manage coordinates across different objects
Process
• For each iteration:
• Test the system with users
• Make modifications
• Repeat until users are pleased with function

20

20

10
10/4/21

Iterative Refinement - Schema

21

21

Discussion of Iterative Refinement

This is a medium weight process with documentation created during the


process

Iterative refinement uses various techniques that enable the client to


review the planned system early during development:
• User interface mock-ups
• Throw-away software components
• Rapid prototyping
• Successive refinement

22

22

11
10/4/21

User interface mock-up

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

...but do not release it

26

26

13
10/4/21

Incremental Development

27

27

Incremental Development - Example

Ecommerce website
• Search, Product Information, Shopping Basket, Checkout, Favourites,
Customer Review

1 increment = 1 release
28

28

14
10/4/21

Incremental Development - Example

3 incrementals:
• 1st:

1st release

29

29

Incremental Development - Example

3 incrementals:
• 2nd:

2nd release

30

30

15
10/4/21

Incremental Development - Example

3 incrementals:
• 3rd:

3rd release

31

31

Incremental Development - Discussion

Is incremental model also an iterative one?

32

32

16
10/4/21

Incremental
vs. Iterative

Can you see the difference?

33

Spiral Development

• Iterative and incremental model with more emphasis placed on risk


analysis
• 4 main phases: Planning – Design – Construct – Evaluation
• An iteration = A spiral

34

34

17
10/4/21

Spiral Development - Schema

• 1st quadrant: Requirements are


gathered and analyzed at the start
of every spiral

• 2nd quadrant: All proposed


solutions for identified problems
are evaluated. Risks are identified
for the selected solution, then are
resolved using the best possible
strategy.
Prototype is built for the best possible
solution

35

35

Spiral Development - Schema

• 3rd quadrant: identified features


are developed and verified through
testing
Next version of the system is available

• 4th quadrant: customers evaluate


the so far developed version
Planning for the next phase then is
started

36

36

18
10/4/21

Spiral Development – Risk Handling

Risk: any situation that might affect the successful completion of the
project

• Spiral model emphasizes risk handling by developing a prototype

• After some iterations, most of risks are studied and resolved

• 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

Spiral model viewed as a Meta-model

The spiral model subsumes all the other models


• Single loop represents the waterfall model

• Prototyping approach is used to first draft the solution before


embarking on the actual product

• Iterations along the spiral model can be considered as the evolutionary


levels through which the complete system is built

• 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

Spring 2000, in Oregon, US, big question:

How could speed up development times in order to bring new software to


market faster?

Critical milestone in the history of Agile with 3 key ideas:


• Speed to market
• Rapid feedback
• Continuous improvement

39

39

Agile Methodology - History

• Oregon 2001, Manifesto for Agile Software Development:

12 principals

40

40

20
10/4/21

Agile Approach: Iterative and Incremental

41

41

Agile Approach: Iterative and Incremental

• A large project is divided into


small increments called sprints
• The development is carried out by
small teams of 4 to 9 people
• The schedule is divided into fixed
time boxes, perhaps 2 to 4 weeks
• Each sprint is a time box during
• Single sprint: requirements, which the team completes part of
design, coding and testing a software project
• Each sprint ends with fully tested
code, ready to put into
production 42

42

21
10/4/21

Agile Development - Sprint

After each sprint the code may be:


• Released (original agile method)
• Combined with code from other sprints for subsequent release
• Incorporated into a larger code base (spiral development)

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

• Contains all the userstories which


will be turned into tasks so that the
scrum team can select and plan in
upcoming sprints

• PO is in charge of managing and


keeping the product backlog up to
date

47

47

Sprint Backlog

48

48

24
10/4/21

Epics – Userstories – Tasks

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

Epics – Userstories – Tasks

50

50

25
10/4/21

Scrum Meetings

51

51

Sprint Planning – Sprint Retrospective – Daily Scrum

Sprint Planning Meeting


• Goal: The development team selects the priority elements of the
Product Backlog to complete in the current sprint

Daily Stand-up Meeting


• Daily synchronizing meeting
• Goal: to enable team members to gather on a daily basis
• to discuss tasks and work progress as well as potential problems
• to overcome possible blockages
• to promote mutual support

52

52

26
10/4/21

Sprint Planning – Sprint Retrospective – Daily Scrum

Sprint Retrospective Meeting


• Toward continuous improvement
• Take place at the end of the sprint
• Goal: discussing and taking a step back from the latest sprint
• to optimize interactions between individuals,
• to raise product quality
• to improve productivity
• Tools:
• Burnup chart
• Burndown chart
• Velocity

53

53

Scrum Development - Example

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

The most important:

User Interface should be tested with users...

è Iterative development, whatever process is used for the rest of


the system

56

56

28
10/4/21

IT3180 Project: Iterative Refinement

57

57

IT3180 Project: Modified Waterfall Model

58

58

29
10/4/21

IT3180 Project: Agile Development

59

59

5. Software development processes


(end of lecture)

60

60

30

You might also like