You are on page 1of 84

Process models

By

Hyung Jae (Chris) Chang


Troy University

Some slides are in courtesy of Dr. Soo Dong Kim and Dr. Hyun Jung La at Soongsil
University

Process Models

Process in Software Engineering


Definition
A

methodology consists of a process, a vocabulary, and g


uidelines.
A process defines a set of activities that together accompl
ish all the goals of the methodology.
Key

Elements of a Process

Life-Cycle

Phases, Activities, Steps

For

Model

Methodolo
gy
is like a
Cookbook.

each Activity

Input, Output Artifacts, Instruction, Quality Guidelines

Software Process
Coherent

sets of activities for specifying, designing, im


plementing and testing software systems

structured set of activities required to develop a soft


ware system

software process model is an abstract representatio


n of a process. It presents a description of a process fr
om some particular perspective

The software process


Many

different software processes but all involve:

Specification

defining what the system should do;


Design and implementation defining the organization o
f the system and implementing the system;
Validation checking that it does what the customer wan
ts;
Evolution changing the system in response to changing
customer needs.

Why Software Process?

Quality of Proces
s
Quality of Product

Why is process essential in SE?


ISO/IEC 9126
Revision in 2001
ISO/IEC 9126-1 to 9126-4

Part 1
Quality Model

Part 2
External Metrics

Part 3
Internal Metrics

Part 4
Quality In Use Metrics

Why is process essential in SE? (cont.)


Quality Model: identifies 6 main quality characteristics
Functionality
Reliability
Usability
Efficiency
Maintainability
Portability

Quality Model
Functionality
Essential purpose of any product or service
The more functions, the more complicated it becomes to define i

ts functionality.
Suitability, accurateness, interoperability, compliance, security,
Reliability
Defines the capability of the system to maintain its service provisi

on under defined conditions for defined periods of time; fault tol


erance
Maturity, fault tolerance, recoverability,
Usability
Ease of use/learn for a given function
Understandability, learnability, operability,
9

Quality Model (cont.)


Efficiency
The system resources used when providing the required functional

ity; disk space, memory usage, network


Time behavior, resource usage,
Maintainability
Can be impacted by code readability or complexity as well as mod

ularization
Anything that helps with identifying the cause of a fault and then
fixing the fault is the concern of maintainability.
Analyzability, changeability, stability, testability,
Portability
How well the software can adopt to changes in its environment or

with its requirements.


Adaptability, installability, conformance, replaceability,
10

Quality Model Framework


Quality
Process

in the Lifecycle
Software Product

Effect of Software
Product

Influences
Influences
Influences
Externa
Internal
Quality
l
Process
Quality
in Use
Quality
Quality
Attribut
Attribut
Attribut
es
es
es
Depends on
Depends on
Depends on

Process
Measures

Internal
Measures

External
Measures

Contexts
of Use

Quality in Use
Measures

11

Quality Model Framework


Process

Quality

Quality

of Life-cycle Process
Process quality contributes to improving product quality.
Product

Quality

Can

be evaluated by measuring internal attributes or mea


suring external attributes.
Internal quality
is evaluated by the static measure of intermediate products.
View at Technical Level

External

quality

is evaluated by measuring the behavior of the code when executed


.

View of User/Management

Product

quality contributes to improving quality in use.

12

Quality Model Framework


Quality

In Use

Users

view of the quality of an environment containing s


oftware, and is measured from the results of using the so
ftware in the environment.

Rather than properties of the software itself.

Users

environment may be different from development e


nvironment.

13

Framework for Processes


Supporting Activities

Definition

Supporting

Development

Maintenance

Activities?

14

Framework for Processes


Supporting Activities

Definition

Supporting

Development

Maintenance

Activities

Project Management
Reviews (FTR) and Inspection
Quality Assurance
Configuration Management
Measurement
Risk Management
Others

15

Framework for Processes (cont.)


Supporting Activities

Definition

Engineering

Development

Maintenance

Activities

Definition

Requirement Engineering

Development

Analysis, Design, Implementation, Testing, Deployment

Maintenance

Post-Development Activities

Retirement

16

Engineering Activities
Preliminary
Preliminary
Design
Design

Requiremen
Requiremen
tt Definition
Definition

Analysis
Analysis

Detailed
Detailed
Design
Design

Design
Design

Implementa
Implementa
tion
tion

Development

Testing
Testing

Operation

Retirement
Retirement

Maintenanc
Maintenanc
ee

Operation
Operation

Deployment
Deployment

17

Plan-driven and agile processes


Plan-driven

processes are processes where all of the pr


ocess activities are planned in advance and progress is
measured against this plan.

In

agile processes, planning is incremental and it is easi


er to change the process to reflect changing customer
requirements.

In

practice, most practical processes include elements


of both plan-driven and agile approaches.

There

are no right or wrong software processes.


18

Representative Process Models


Waterfall

Model

Rapid

Application Development (RAD) Model

Spiral

Model

Prototyping

Model

Component-Based
Aspect-Oriented
Agile

Development (CBD) Model

Development Model

Process

eXtreme

Programming (XP)

Scrum

Formal

Method

19

Waterfall Model

20

Waterfall Model
Oldest

paradigm in Software Engineering

Sequential
When

approach to S/W development

to Choose?

When

requirements of a problem are reasonably well un


derstood.
When work flows from communication through deploym
ent in a reasonably linear fashion.
When requirements are well-defined and reasonably stab
le.

21

Waterfall Model (cont.)


Requiremen
Requiremen
tt Definition
Definition
Analysis
Analysis

Design
Design
Implementa
Implementa
tion
tion
Testing
Testing
Operation
Operation
and
and
Maintenanc
Maintenanc
ee
22

Waterfall Model (cont.)


Problems
Real

projects rarely follow the sequential flow that the m


odel proposes.
It is often difficult for the customer to state all requireme
nts explicitly.
The customer must have patience.

A working version of the program will not be available until late in t


he project time-span.

The

waterfall model is mostly used for large systems engi


neering projects where a system is developed at several si
tes.

In those circumstances, the plan-driven nature of the waterfall mod


el helps coordinate the work.
23

Incremental Development

24

Incremental development

25

Incremental development and delivery


Incremental

development

Develop

the system in increments and evaluate each incr


ement before proceeding to the development of the next
increment;
Normal approach used in agile methods;
Evaluation done by user/customer proxy.
Incremental

delivery

Deploy

an increment for use by end-users;


More realistic evaluation about practical use of software;
Difficult to implement for replacement systems as increm
ents have less functionality than the system being replace
d.
26

Incremental delivery
Rather

than deliver the system as a single delivery, the


development and delivery is broken down into increm
ents with each increment delivering part of the require
d functionality.

User

requirements are prioritized and the highest prior


ity requirements are included in early increments.

Once

the development of an increment is started, the


requirements are frozen though requirements for later
increments can continue to evolve.

27

Incremental development benefits


The

cost of accommodating changing customer requir


ements is reduced.
The

amount of analysis and documentation that has to b


e redone is much less than is required with the waterfall
model.

It

is easier to get customers feedback on the develop


ment work that has been done.
Customers

can comment on demonstrations of the softw


are and see how much has been implemented.

More

rapid delivery and deployment of useful softwar


e to the customer is possible.
Customers

are able to use and gain value from the softw28

Incremental development problems


The

process is not visible.

Managers

need regular deliverables to measure progress.


If systems are developed quickly, it is not cost-effective to
produce documents that reflect every version of the syste
m.

System

structure tends to degrade as new increments


are added.
Unless

time and money is spent on refactoring to improv


e the software, regular change tends to corrupt its struct
ure. Incorporating further software changes becomes inc
reasingly difficult and costly.
29

Incremental delivery advantages


Customer

value can be delivered with each increment


so system functionality is available earlier.

Early

increments act as a prototype to help elicit requir


ements for later increments.

Lower

risk of overall project failure.

The

highest priority system services tend to receive the


most testing.

30

Incremental delivery problems


Most

systems require a set of basic facilities that are


used by different parts of the system.
As

requirements are not defined in detail until an incre


ment is to be implemented, it can be hard to identify c
ommon facilities that are needed by all increments.

The

essence of iterative processes is that the specific


ation is developed in conjunction with the software.
However,

this conflicts with the procurement model of


many organizations, where the complete system specif
ication is part of the system development contract.

31

Spiral Model

32

Spiral Model
Adapted

to apply throughout the entire life cycle of an


application, from concept development and maintena
nce. (iterative approach)

Couples

the iterative nature of prototyping with the co


ntrolled and systematic aspects of the waterfall model.

Software

is developed in a series of incremental releas

es.
Early

Release might be a paper model prototype.

Later

iterations
iterations

More complete versions of the engineered system are produced.

33

Spiral Model (cont.)

planning
estimation
scheduling
risk analysis

communication

modeling
analysis
design
start

deployment
delivery
feedback

construction
code
test

34

Spiral Model (cont.)


Advantages
Effectively

Gathering and Refining Requirements


Risk Reduction through Clients Feedback
Realistic Approach for Large-scaled systems
Drawbacks
Hard

to Control

Iterations and Increments


Progress Monitoring

35

Agile Process

36

Agile Process
What

is Agility?

Effective

(rapid and adaptive) response to change


Effective communication among all stakeholders
Drawing the customer onto the team
Organizing a team so that it is in control of the work perf
Yielding rapid, incremental delivery of
ormed
software

Agility

and Cost of Change

37

Agile Process (cont.)


A

group of software development methods based on i


terative and incremental development, where require
ments and solutions evolve through collaboration bet
ween self-organizing, cross-functional teams [Wiki]

To promote;
Adaptive

Planning
Evolutionary development and delivery
A time-boxed iterative approach
Rapid and flexible response to change
Introduced

by Agile Manifesto in 2001

38

12 Agile Principles
Principle

1. Customer satisfaction by rapid delivery of usefu


l software
The

highest priority is to satisfy the customer through early an


d continuous delivery of valuable software.

Principle

2. Welcome changing requirements, even late in


development
Agile

processes harness change for the customers competitive


advantage.
Agile teams work to keep the software structure flexible, so re
quirement change impact is minimal.
Principle

3. Working software is delivered frequently (week


s rather than months)
From

a couple of weeks to a couple of months with a preferen


ce to the shorter time scale
39

12 Agile Principles (cont.)


Principle

4. Working software is the principal measure of progres

s
Agile

projects measure their progress by measuring the amount of w


orking software.

Principle

5. Sustainable development, able to maintain a constant

pace
Agile

Processes promote sustainable development.

The sponsors, developers, and users should be able to maintain a constant pace i
ndefinitely.

Principle

6. Close, daily cooperation between business people an


d developers
For

agile projects, there must be significant and frequent interaction


among the

customers,
developers, and

stakeholders.

40

12 Agile Principles (cont.)


Principle

7. Face-to-face conversation is the best form of commun


ication (co-location)
In

agile projects, developers talk to each other.

The primary mode of communication is conversation.

Documents may be created, but there is no attempt to capture all project informat
ion in writing.

Principle

8. Projects are built around motivated individuals, who s


hould be trusted
Give

them the environment and support they need, and trust them to
get the job done.

Principle

9. Continuous attention to technical excellence and goo

d design
The

way to go fast is to keep the software as clean and robust as poss

ible.
Thus, all agile team-members are committed to producing only the hi
ghest quality code they can.
41

12 Agile Principles (cont.)


Principle
Agile

10. Simplicity is essential

teams take the simplest path that is consistent with their go

als.
Principle

11. Self-organizing teams

The

best architectures, requirements, and designs emerge from Se


lf-Organizing Teams.

Responsibilities are not handed to individual team members from the outside.

Responsibilities are communicated to the team as a whole, and the team dete
rmines the best way to fulfill them.

Principle

12. Regular adaptation to changing circumstances

At

regular intervals, the team reflects on how to become more eff


ective, then tunes and adjusts its behavior accordingly.
An agile team knows that its environment is continuously changin
g, and knows that they must change with that environment to re
main agile.
42

Agile method applicability


Product

development where a software company is de


veloping a small or medium-sized product for sale.

Custom

system development within an organization,


where there is a clear commitment from the customer
to become involved in the development process and w
here there are not a lot of external rules and regulatio
ns that affect the software.

Because

of their focus on small, tightly-integrated tea


ms, there are problems in scaling agile methods to larg
e systems.

43

Problems with agile methods


It

can be difficult to keep the interest of customers who are involv


ed 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 stak

eholders.
Maintaining

simplicity requires extra work.

Many

organizations, especially large companies, have spent years


changing their culture so that processes are defined and followe
d. It is difficult for them to move to a working model in which pro
cesses are informal and defined by development team.

44

Agile methods and software maintenance


Most

organizations spend more on maintaining existin


g software than they do on new software developmen
t. So, if agile methods are to be successful, they have t
o support maintenance as well as original developmen
t.

Two

key issues:

Are

systems that are developed using an agile approach


maintainable, given the emphasis in the development pro
cess of minimizing formal documentation?
Can agile methods be used effectively for evolving a syste
m in response to customer change requests?
Problems

may arise if original development team cann45

Plan-driven and agile development


Plan-driven

development

plan-driven approach to software engineering is based


around separate development stages with the outputs to
be produced at each of these stages planned in advance.
Not necessarily waterfall model plan-driven, incremental
development is possible
Iteration occurs within activities.
Agile

development

Specification,

design, implementation and testing are int


er-leaved and the outputs from the development process
are decided through a process of negotiation during the
software development process.
46

Plan-driven and agile Development

47

Technical, human, organizational issues


Most

projects include elements of plan-driven and agile pro


cesses. Deciding on the balance depends on:
Is

it important to have a very detailed specification and design


before moving to implementation? If so, you probably need to
use a plan-driven approach.
Is an incremental delivery strategy, where you deliver the softw
are to customers and get rapid feedback from them, realistic? I
f so, consider using agile methods.
How large is the system that is being developed? Agile method
s are most effective when the system can be developed with a
small co-located team who can communicate informally. This
may not be possible for large systems that require larger devel
opment teams so a plan-driven approach may have to be used.
48

What

Technical, human,
organizational issues (cont.)
type of system is being developed?

Plan-driven

approaches may be required for systems that require a lot of anal


ysis before implementation (e.g. real-time system with complex timing requir
ements).

What

is the expected system lifetime?

Long-lifetime

systems may require more design documentation to communic


ate the original intentions of the system developers to the support team.

What

technologies are available to support system development?

Agile

How

methods rely on good tools to keep track of an evolving design

is the development team organized?

If

the development team is distributed or if part of the development is being


outsourced, then you may need to develop design documents to communica
te across the development teams.

49

Technical, human,
organizational
issues
(cont.)
Are there
cultural or organizational
issues that
may affect the sy
stem development?
Traditional

engineering organizations have a culture of plan-based


development, as this is the norm in engineering.

How

good are the designers and programmers in the developm


ent team?
It

is sometimes argued that agile methods require higher skill levels


than plan-based approaches in which programmers simply translat
e a detailed design into code

Is

the system subject to external regulation?

If

a system has to be approved by an external regulator (e.g. the FA


A (Federal Aviation Admiration) approve software that is critical to
the operation of an aircraft) then you will probably be required to
produce detailed documentation as part of the system safety case.

50

Scaling agile methods


Agile

methods have proved to be successful for small a


nd medium sized projects that can be developed by a s
mall co-located team.

It

is sometimes argued that the success of these metho


ds comes because of improved communications which
is possible when everyone is working together.

Scaling

up agile methods involves changing these to c


ope with larger, longer projects where there are multi
ple development teams, perhaps working in different l
ocations.

51

le Process: Extreme Programming (X

52

Extreme Programming (XP)


The

most widely used agile process, originally prop


osed by Kent Beck

XP

Planning

Begins

with the creation of user stories


Agile team assesses each story and assigns a cost
Stories are grouped to for a deliverable increment
A commitment is made on delivery date
After the first increment project velocity is used to
help define subsequent delivery dates for other incre
ments

53

Extreme Programming (XP) (cont.)


XP

Design

Follows

the KIS (Keep It Simple) principle

For

difficult design problems, XP suggests the immediate creation of an op


erational design prototype called spike solutions

Encourages

refactoringan iterative refinement of the internal program

design

XP

Coding

Recommends

the construction of a unit test for a store before coding com

mences
Encourages

XP

pair programming

Testing

All

unit tests are executed daily

Acceptance

tests are defined by the customer and executed to assess cus


tomer visible functionality
54

Extreme Programming (XP) (cont.)

55

Agile Process: Scrum

56

Overview on Scrum
Agile

approach for developing innovative products an


d services

57

Overview on Scrum (cont.)


To begin
A

by creating a product backlog

prioritized list of the product backlog items (PBIs).

To work

on the most important or highest priority item


s first, guided by the product backlog

To perform

each work in short, time-boxed iterations

Ranging

from a week to a calendar month in length


By a self-organizing, cross-functional team

58

Overview on Scrum (cont.)


At

the start of each iteration

To

plan which high-priority subset of the product backlog


to create in the upcoming iteration

At

the end of the iteration

To

produce a potentially shippable product or increment


of the product
To review the completed features with the stakeholders t
o get their feedback
Based on the feedback, to alter both what they plan to w
ork on next and how the team plans to do the work

59

Scrum Roles
Scrum

Team

Consists

In

of one or more members.

each Scrum Team

To

make up of essential three scrum roles;

Product Owner
ScrumMaster
Development Team

Can

include other roles

60

Scrum Roles Product Owner


The

single authority responsible for deciding what feat


ures and functionalities will be developed and in what
order

To maintain

and communicate to all other participants


a clear vision of what the Scrum team is trying to achie
ve
To

actively collaborate with the ScrumMaster and develo


pment team
Must be available to answer questions soon after other p
articipants are posed
Responsible

for the overall success of the solution bein


g developed or maintained
61

Scrum Roles ScrumMaster


Responsible

for guiding the team in creating and following its


own process based on the broader Scrum framework
To

help everyone involved understand and embrace the Scrum val


ues, principles, and practices

To act

as a coach

To

help the Scrum team and the rest of the organization develop t
heir own high performance, organization-specific Scrum approach

To act

as a facilitator

To

help the team resolve issues and make improvements to its use
of Scrum
To protect the team from outside interference
To act

as a leader

To

take a leadership role in removing impediments that inhibit tea


m productivity
62

Scrum Roles
Development Team
Responsible

for determining how to deliver what the p


roduct owner has asked for

To self-organize

to determine the best way to accompl


ish the goal set out by the product owner

Typically

five to nine people in size

Its

members must collectively have all of the skills needed


to produce good quality, working software.

63

Scrum Activities and Artifacts

Vision of
the Project

Product Owner

64

Scrum Activities and Artifacts (cont.)


To perform

grooming

Done

by a product owner
To break a project vision of the product owner down into a set of fe
atures that are collected into a prioritized list (i.e. product backlog)
Artifact

A product backlog

To perform

sprint planning

Mainly

done by a development team


To determine a subset of the product backlog items it believes it can
complete
Artifact

A sprint backlog
Which describes how the team plans to design, build, integrate, and test the
selected subset of features from the product backlog during that particular s
print

65

Scrum Activities and Artifacts (cont.)


To perform

the sprint execution

Done

by the development team


To perform the tasks necessary to realize the selected feat
ures
To perform the daily scrum everyday

The team members help manage the flow of work by conducting a


synchronization, inspection, and adaptive planning activity.

Artifact

A potentially shippable product increment


Which represents some, but not all, of the product owners visio
n, at the end of sprint execution

66

Scrum Activities and Artifacts (cont.)


To perform
The

sprint review

The stakeholders and Scrum team inspect the product being built.

The

two inspect-and-adapt activities

sprint retrospective

The Scrum team inspects the Scrum process being used to create t
he product.

Artifact

Adaptations that will make their way into the product backlog or b
e included as part of the teams development process

67

Product Backlog
A

prioritized list of the project work, i.e. Product Backlog It


ems (PBIs).

PBIs

are prioritized.

Higher-value

items appear at the top of the product backlog.


Lower-value items appear toward the bottom.
Initially

generated by the product

owner
With

Can

input from the team and stakeholders

be evolved, i.e. Grooming

Items

can be added, deleted, and revised


at the end of each iteration.
Mainly due to (1) change on requirement(s)
and (2) teams growing understanding on the product.
68

Types of Product Backlog Items


Feature

Type

Represents

a functional unit to be developed.


Example) Develop Rental Component.
Change

Type

Represents

a modification work on an existing artifact,


mainly due to the change on requirement or business process.
Example) Modify the Check out car procedure.
Defect

Type

Represents

a defect removal work on an existing artifact.


Example) Fix the defect on Rental; computing the fee for a late return.
Technical

Improvement

Represents

an improvement work on an existing artifact.


Example) Upgrade the DMBS with a latest version.
Knowledge
Represents

Acquisition Type
a knowledge acquisition work needed in the project.

69

Grooming Product Backlog


The

activity of creating and refining PBIs, estimating th

em,
and prioritizing them

70

Estimating Cost of PBIs


Estimating

the size/cost of each PBIs

Used

to properly determine its priority.


Before finalizing prioritizing, ordering, or otherwise arran
ging the product backlog
Which size measures to use
Not dictated by Scrum
Relative Size Estimates
are typically used.

71

Sprints
Iterations

or cycles of up to a calendar month

Time-boxed
To

have a fixed start and end date


Generally, to have the same duration

72

Activity Sprint Planning


To determine

the most important subset of product ba


cklog items to build in the next sprint

To spend
For

about four to eight hours in sprint planning

two-week to one-month sprint

73

Activity Sprint Planning (cont.)


How

to Perform

To

agree on a sprint goal that defines what the upcoming


sprint is supposed to achieve

Done by the product owner and development team

To

review the product backlog and determine the high pr


iority items

That the team can realistically accomplish in the upcoming sprint w


hile working at a sustainable pace
Done by the development team

74

Activity Sprint Planning (cont.)


To

break down each targeted feature into a set of tasks, i


.e. sprint backlog
To provide an estimate (typically in hours) of the effort re
quired to complete each task

<Sprint Backlog>
75

Activity Sprint Execution


To perform

all of the task-level work necessary to get t


he features done
Done

by the development team


Guided by the ScrumMasters coaching

76

Activity Sprint Execution (cont.)


To define

teams task-level works by themselves

To self-organize

in any manner they feel is best for ach


ieving the sprint goal

77

Activity Daily Scrum


To hold

a time-boxed (15 minutes or less) inspect-and


adapt activity, each day of the sprint
An

inspection, synchronization, and adaptive daily planni


ng activity that helps a self-organizing team do its job bet
ter

Referred

as the daily stand-up

Everyone

stands up during the meeting to help promote

brevity.

78

Activity Daily Scrum (cont.)

79

Activity Daily Scrum (cont.)


A

Common Approach to Perform the Daily Scrum

To

have the ScrumMaster facilitating


To have each team member taking turns answering three
questions
What did I accomplish since the last daily scrum?

What do I plan to work on by the next daily scrum?

What are the obstacles or impediments that are preventing me fro


m making progress?

Benefits
Essential

for helping the development team manage the f


ast, flexible flow of work within a sprint
Useful to communicate the status of sprint backlog items
among the development team members
80

Activity Done
To produce

potentially shippable product increment

Whatever

the Scrum team agreed to do is really done acc


ording to its agreed-upon definition of done.
There isnt materially important undone work that needs t
o be completed.

81

Activity Sprint Review


To inspect

and adapt the product that is being built

82

Activity Sprint Review (cont.)


To take

place a conversation among its participants

Including

the Scrum team, stakeholders, sponsors, custo


mers, and interested members of other teams
To review the just-completed features in the context of th
e overall development effort
Objectives
To

get clear visibility into what is occurring


To have an opportunity to help guide the forthcoming de
velopment to ensure that the most business-appropriate
solution is created

83

Activity Sprint Retrospective


To inspect

and adapt the process

The

development team, ScrumMaster, and product owne


r discuss what is and is not working with Scrum and asso
ciated technical practices.

To focus

on the continuous process improvement nece


ssary to help a good Scrum team become great

84

You might also like