• No results found

Quality Assurance Software Development Processes

N/A
N/A
Protected

Academic year: 2021

Share "Quality Assurance Software Development Processes"

Copied!
24
0
0

Loading.... (view fulltext now)

Full text

(1)

/2012

254

12/09

/

Quality Assurance

Software Development Processes

SOFTENG

Software Development Processes

ealand

Part II - Lecture 3

k land | New Z e v ersity of Auc k v

(2)

The FBI Virtual Case File

/2012 • Database application developed by

254

12/09

/

the FBI between 2000 and 2005 • To replace legacy “stovepipe”

systems

SOFTENG

systems

• Cost: nearly $170 million

• Abandoned before deployment

ealand

p y

• Reasons (according to the FBI):

– Incomplete/changing

Why?

k land | New Z e

requirements

– Management problems

L k f ft

i

htt // fbi / /t ti v ersity of Auc

k

– Lack of software engineers

– Changing team

Underestimated complexity

http://www.fbi.gov/news/testi mony/fbis-virtual-case-file-system v

– Underestimated complexity

(3)

Today’s Outline

/2012

y

254 12/09 /

• Software Development Processes

(Recap & Overview)

SOFTENG

(Recap & Overview)

• eXtreme Programming (XP)

• Rational Unified Process (RUP)

ealand

• Rational Unified Process (RUP)

k land | New Z e v ersity of Auc k v

(4)

/2012

254

12/09

/

SOFTENG

Software Development

P

ealand

Processes

k land | New Z e

No challenge is too great if u pl n h d

v

ersity of

Auc

k if you plan ahead.

And have pointy ears.

(5)

What is your CMM level

t d ?

/2012

today?

Level Characteristics Key process areas

254

12/09

/

1 Initial Unstable environment

Unpredictable, ad hoc None

SOFTENG Plan

2 Managed Management processes

Based on experience Requirements management, project planning, tracking and oversight, CM

ealand

3 Defined Standardized, docu-mented process

Effective SE practices Process definition & focus, training program, SE, peer review

k

land |

New Z

e

4 Quant.

Managed Measurement programPredictably high quality Quantitative process management, software quality management

v

ersity of

Auc

k

5 Optimizing Process improvement Analyze defects

Disseminate experience

Technology & process change management,

defect prevention

(6)

Adaptive vs. Predictive

Processes

/2012

Processes

Adaptive

Predictive

254 12/09 / • Lightweight, ‘agile’

• Control by feedback • Heavyweight, ‘traditional’ • Control by planning

Adaptive

Predictive

SOFTENG

Control by feedback

• Many short iterations (weeks) • Small scale (<10 developers) • Face-to-face communication

Control by planning

• Few long iterations (months) • Large scale (>30 developers) • Written documents

ealand

Face to face communication • Code- & people-centric

• Egalitarian Written documents • Rule-centric • Authoritarian k land | New Z e • Problems:

– Long-term results hardly predictable

N d d j

• Problems:

– Inflexible with changing requirements Hi h i i d i v ersity of Auc k

– Needs good project foundation

– Cowboy-coding chaos

– High integration and testing effort

– ‘Control freak’ bureaucracy

v

(7)

Agile Software Development

/2012

g

p

• Evolved in mid 1990s as part of a reaction against

254

12/09

/

p

g

heavyweight methods

• Many short iterations (weeks), ‘prototyping’:

SOFTENG

Analysis Design Implementation Testing Prototype

Iteration

#1

ealand

Analysis Design Implementation Testing Prototype

Analysis Design Implementation Testing Prototype

#1

#2

k land | New Z e

Analysis Design Implementation Testing Prototype

#3

v

ersity of

Auc

k

• Control by feedback: reevaluation & revision of

v

ontro y f

ac r

a uat on & r s on of

project after each iteration

(8)

/2012 254 12/09 / SOFTENG

eXtreme Programming (XP)

ealand

eXtreme Programming (XP)

k land | New Z e

“I don't have anything against education

v

ersity of

Auc

k

- as long as it doesn't interfere with your thinking.”

(9)

XP Overview

/2012

Instead of cowboy coders we have software

254

12/09

/

y

sheriffs; working together as a team, quick on the

draw, armed with a few rules and practices that are

li ht i

d

ff ti

SOFTENG

light, concise, and effective

.“

(James D. Wells, extremeprogramming.org)

ealand

• XP=eXtreme Programming:

Nomen est omen a code centered approach

k

land |

New Z

e

Nomen est omen, a code-centered approach

• XP culture: not just about getting work done

• Set of day to day best practices for developers and

v

ersity of

Auc

k

• Set of day-to-day best practices for developers and

managers that encourage and embody certain values

• 5 values 12 practices/rules

(10)

The 5 XP Values

/2012

1. Communication

– Teamwork: consistent shared view of the system

O ffi i d l

254

12/09

/

– Open office environment: developers, managers, customers – Verbal, informal, face-to-face conversation

2. Feedback Cost of

SOFTENG

– Find required changes ASAP to avoid cost – From the customer, through early

prototypes & communication

Cost of change

ealand

– Testing, code review, team estimates 3. Simplicity

– Build the simplest thing that works for today

Point of time within project k land | New Z e p g f y

– No work that might become unnecessary tomorrow – Simple design easier to communicate

4 Courage

v

ersity of

Auc

k 4. Courage

– To change and to scrap, “embrace change” – Better change now (cheaper)

Never ever give up!

v – Never ever give up!

(11)

The 12 XP Practices

/2012 Fine scale feedback

254

12/09

/

1. Pair Programming

Programming in teams of two: driver and navigator

2 Planning Game: method for project planning with the customer

SOFTENG

2. Planning Game: method for project planning with the customer 3. Test Driven Development

– First write test cases, then program code

F h d f i d

ealand

– For each defect, introduce new test case

4. Whole Team: teamwork of customer, developer/manager

k

land |

New Z

e

Shared understanding

5. Use an agreed Coding Standard

6 C ll ti C d O hi

v

ersity of

Auc

k 6. Collective Code Ownership

Everybody is responsible for and can change all code 7. Simple Design

v

8. System Metaphor

(12)

The 12 XP Practices

/2012

Continuous process

254 12/09 /

p

9.

Continuous Integration

– Work with latest version

SOFTENG

– Integrate local changes ASAP

10.

Refactoring

d i

h

ibl

ealand

– Improve design whenever possible

– Remove clutter & unnecessary complexity

11

S ll R l s s

k land | New Z e

11.

Small Releases

Programmer welfare

v ersity of Auc k

Programmer welfare

12.

Sustainable Pace

No Overtime – change timing or scope instead

v

No O rt m chang t m ng or scop nst a

(13)

Some XP Terminology

/2012

gy

• User story 254 12/09 / y

– Things the system needs to do for the users – Written on a card in a few sentences

Should take 1 3 weeks to implement

SOFTENG

– Should take 1-3 weeks to implement

• Release: running system that implements important user stories • Spike

ealand

– Small proof-of-concept prototype

– Explores the feasibility of an implementation approach • Iteration

k

land |

New Z

e Iteration

– Phase of implementation, 1-3 weeks long

– Consists of tasks, each of which is 1-3 days long

v

ersity of

Auc

k

• Project velocity: used to estimate progress – Either #stories / time (time)

– Or time / #stories (scope)

(14)

XP Workflow Overview

/2012

U

254 12/09 /

User

Stories

Project velocity Defects

SOFTENG

Release

Planning

Iteration

Tests

ealand N t N k land | New Z e

Small

Release

Next Iteration New User Story v ersity of Auc k Uncertain Estimates Confident Estimates

= is followed by

v

(15)

XP Criticism

/2012 • Relies on on-site customer

254

12/09

/

– Single point-of-failure

(-> source of stress, lack of technical expertise)

– May not be representative for all users ( > user conflicts)

SOFTENG

– May not be representative for all users (-> user conflicts) • Unstable Requirements because of informal change requests

instead of formal change management (-> rework, scope creep)

ealand

• Lack of documentation, e.g. tests instead of requirements documents

• Incremental design on the fly ( > more redesign effort)

k

land |

New Z

e • Incremental design on-the-fly (-> more redesign effort)

• Pair-programming required

• Interdependency of practices requires drastic organizational

v

ersity of

Auc

k p y p q g

changes

• Scalability? Distributed development?

(16)

/2012

254

12/09

/

SOFTENG

The Rational Unified

ealand

Process (RUP)

k land | New Z e v ersity of Auc k v

(17)

RUP Overview

/2012

• Extensible, customizable process framework

254

12/09

/

,

p

• Created by the Rational Software Corporation in the

1980s and 1990s, which was sold to IBM in 2003

SOFTENG

• Now software process product of IBM

• IBM sells RUP tools, e.g. Rational Method Composer

ealand

g

p

for authoring, configuring and publishing processes

• Business-driven development

k land | New Z e

• Tied to UML

• Heavyweight, i.e. of considerable size, but recent

v

ersity of

Auc

k

changes influenced by lightweight, agile processes

(18)

6 RUP Best Practices:

The RUP ABC

/2012

The RUP ABC

A

dapt the process

254

12/09

/ p p

– right-size the process to project needs – adapt process ceremony to lifecycle phase – continuously improve the process

SOFTENG

– continuously improve the process

– balance project plans and associated estimates with the uncertainty of a project

B

ealand

B

alance competing stakeholder priorities

– understand and prioritize business and stakeholder needs

k

land |

New Z

e

– center development activities around stakeholder needs – balance asset reuse with stakeholder needs

C

v

ersity of

Auc

k

C

ollaborate across teams

– motivate individuals on the team to perform at their best – encourage cross-functional collaboration

v – encourage cross-functional collaboration

(19)

The RUP ABC Cont’d

/2012

D

emonstrate value iteratively

254

12/09

/

– incremental value to enable early and continuous feedback – adapt your plans

– embrace and manage change

SOFTENG

– embrace and manage change – drive out key risks early

E

l h l l f b i

ealand

E

levate the level of abstraction – reusing existing assets

– leverage higher-level tools frameworks and languages

k

land |

New Z

e leverage higher level tools, frameworks, and languages

– focus on architecture

F

s ti sl lit

v

ersity of

Auc

k

F

ocus continuously on quality

– the entire team owns quality – test early and continuously

v test early and continuously

(20)

RUP Lifecycle

/2012

y

• 4 phases divided into a series of timeboxed

iterations

• Each iteration results in an

increment

(release)

254

12/09

/ • Each iteration results in an

increment

(release)

Disciplines

(like traditional phases) which happen with varying emphasis in every phase

SOFTENG 1. Inception Phase

– Justification or business case

ealand

– Project scope, use cases, key requirements – Candidate architectures

Risks preliminary project schedule cost estimate

k

land |

New Z

e – Risks, preliminary project schedule, cost estimate

2. Elaboration Phase

– Requirements, risk factors

v

ersity of

Auc

k q

– System architecture (Executable Architecture Baseline) – Construction plan (including cost and schedule estimates) 3 Construction Phase: building the rest of the system (longest)

v 3. Construction Phase: building the rest of the system (longest)

(21)

RUP Lifecycle

/2012

y

254 12/09 / SOFTENG ealand k land | New Z e v ersity of Auc k v 2006 Giles Lewis

(22)

RUP Criticism

/2012

• “High ceremony methodology”

Bur ucr tic: pr c ss f r v r thin

254

12/09

/

• Bureaucratic: process for everything

• Slow: must follow process to comply

• Excessive overhead:

SOFTENG

• Excessive overhead:

rationale, justification, documentation, reporting,

meetings, permission

ealand

• Very customizable: can be everything and nothing

k

land |

New Z

e

But:

• RUP can be used in traditional waterfall style or in

agile manner

v ersity of Auc k

agile manner

• Example: dX process

– Fully compliant instance of RUP

v

Fully compliant instance of RUP

(23)

Today’s Summary

/2012

y

y

• Adaptive vs. predictive Processes

254

12/09

/

p

p

• eXtreme Programming (XP)

– Agile process focused on programming as a team

SOFTENG

– Short iterations, as much feed back as possible

• Rational Unified Process (RUP)

ealand

– Heavyweight process framework

– Phases divided into iterations,

several disciplines happening simultaneously

k

land |

New Z

e

several disciplines happening simultaneously

References:

• Don Wells Extreme Programming: A Gentle Introduction 2009

v

ersity of

Auc

k • Don Wells. Extreme Programming: A Gentle Introduction. 2009.

http://www.extremeprogramming.org/

• Rational Software. Rational Unified Process: Best Practices for Software Development Teams White Paper TP026B 2001

v

23

Software Development Teams. White Paper TP026B. 2001.

(24)

Quiz

/2012

Q

1. Describe 3 differences between adaptive and

254

12/09

/

p

predictive processes.

SOFTENG

2. Explain 5 of the XP best practices.

ealand

3. What are the main characteristics of the RUP

lifecycle?

k land | New Z e v ersity of Auc k v

References

Related documents

that you are using is successful. If it’s not then, actually you should go back and to find some other way to do some lesson, but it’s also to find out what the kids

States, the basic financial statements of the Board of Trustees of the Classical Academy Charter School of Clifton (the “Charter School”) in the County of Passaic, State of New

The findings are based on intensive interviews and questionnaire surveys with executives responsible for disaster response in Iraqi General Directorate of Civil Defence and based on

These are Extreme Programming, Scrum, Crystal Methodologies, Rational Unified Process, Adaptive Software Development, Feature Driven Development, Dynamic Systems

Abstract We investigate the large-scale forcing and teleconnections between atmospheric circulation (sea level pressure, SLP), sea surface temperatures (SSTs), precipitation and

Acute mesenteric ischemia caused by spontaneous and isolated dissection of the main trunk of the superior me- senteric artery (SMA) without aortic involvement is a rare event..

It identifies six processes: software planning, software development, software verification, software configuration management, software quality assurance

Software development is complex and is error prone Many problems that are faced during software development can be tackled, by adopting Quality assurance practices