• No results found

How To Plan A Project

N/A
N/A
Protected

Academic year: 2021

Share "How To Plan A Project"

Copied!
9
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Engineering: A Practitioner’s Approach, Software Engineering: A Practitioner’s Approach,

6/e 6/e

Chapter 4 Chapter 4

Agile Development Agile Development

copyright © 1996, 2001, 2005

R.S. Pressman & Associates, Inc.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided

with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1

For University Use Only

May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach.

Any other reproduction or use is expressly prohibited.

The Manifesto for The Manifesto for

Agile Software Development Agile Software Development

“We are uncovering better ways of developing

“We are uncovering better ways of developing software by doing it and helping others do it.

software by doing it and helping others do it. y y g g p g p g Through this work we have come to value:

Through this work we have come to value:

••Individuals and interactions Individuals and interactions over processes over processes and tools

and tools

••Working software Working software over comprehensive over comprehensive documentation

documentation

••Customer collaboration Customer collaboration over contract over contract negotiation

negotiation g g

••Responding to change Responding to change over following a plan over following a plan

(2)

What is “Agility”?

What is “Agility”?

 Effective (rapid and adaptive) response to change Effective (rapid and adaptive) response to change

 Effective communication among all stakeholders Effective communication among all stakeholders

 Effective communication among all stakeholders Effective communication among all stakeholders

 Drawing the customer onto the team Drawing the customer onto the team

 Organizing a team so that it is in control of the work Organizing a team so that it is in control of the work performed

performed Yielding … Yielding …

R id i t l d li f ft

R id i t l d li f ft

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided

with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 3

 Rapid, incremental delivery of software Rapid, incremental delivery of software

An Agile Process An Agile Process

 Is driven by customer descriptions of what is Is driven by customer descriptions of what is required (scenarios)

required (scenarios) required (scenarios) required (scenarios)

 Recognizes that plans are short Recognizes that plans are short--lived lived

 Develops software iteratively with a heavy Develops software iteratively with a heavy emphasis on construction activities

emphasis on construction activities

 Delivers multiple ‘software increments’ Delivers multiple ‘software increments’

Adapts as changes occur Adapts as changes occur

 Adapts as changes occur Adapts as changes occur

(3)

Extreme Programming (XP) Extreme Programming (XP)

 The most widely used agile process, originally proposed The most widely used agile process, originally proposed by Kent Beck

by Kent Beck by Kent Beck by Kent Beck

 XP Planning XP Planning

 Begins with the creation of “ Begins with the creation of “user stories user stories””

 Agile team assesses each story and assigns a Agile team assesses each story and assigns a cost cost

 Stories are grouped to for a Stories are grouped to for a deliverable increment deliverable increment

 A A commitment commitment is made on delivery date is made on delivery date

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided

with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 5

y y

 After the first increment “ After the first increment “project velocity project velocity” is used to help define ” is used to help define subsequent delivery dates for other increments

subsequent delivery dates for other increments

Extreme Programming (XP) Extreme Programming (XP)

XP Design XP Design

Follows the Follows the KIS principle KIS principle

Encourage the use of Encourage the use of CRC cards CRC cards (see Chapter 8) (see Chapter 8)

For difficult design problems, suggests the creation of “ For difficult design problems, suggests the creation of “spike solutions spike solutions””— —a design a design prototype

prototype

Encourages “ Encourages “refactoring refactoring””— —an iterative refinement of the internal program design an iterative refinement of the internal program design

XP Coding XP Coding

Recommends the Recommends the construction of a unit test construction of a unit test for a store for a store before before coding commences coding commences

Encourages “ Encourages “pair programming pair programming””

XP Testing XP Testing

XP Testing XP Testing

All All unit tests are executed daily unit tests are executed daily

(4)

Extreme Programming (XP) Extreme Programming (XP)

user st ories values

accept ance t est crit eria

it erat ion plan

simple design CRC cards

spike solut ions prot ot ypes

pair it erat ion plan

ref act oring

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided

with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 7

unit t est

cont inuous int egrat ion accept ance t est ing

p

programming

Release

sof t ware increment

project v elocit y comput ed

Adaptive Software Development Adaptive Software Development

 Originally proposed by Jim Highsmith Originally proposed by Jim Highsmith

 ASD ASD — — distinguishing features distinguishing features

 ASD ASD distinguishing features distinguishing features

 Mission Mission--driven driven planning planning

 Component Component--based focus based focus

 Uses “ Uses “time time--boxing boxing” (See Chapter 24) ” (See Chapter 24)

 Explicit consideration of Explicit consideration of risks risks

 Emphasizes Emphasizes collaboration collaboration for requirements gathering for requirements gathering

 Emphasizes “ Emphasizes “learning learning” throughout the process ” throughout the process

(5)

Adaptive Software Development Adaptive Software Development

adapt ive cycle planning

uses mission st at ement project const raint s basic requirement s

t ime-boxed release plan

Requirement s gat hering JAD

mini-specs

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided

with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 9

component s implement ed/ t est ed f ocus groups f or f eedback

f ormal t echnical reviews

post mort ems

sof t ware increment

adjust ment s f or subsequent cy cles

Release

Dynamic Systems Development Method Dynamic Systems Development Method

 Promoted by the DSDM Consortium ( Promoted by the DSDM Consortium (www.dsdm.org www.dsdm.org))

 DSDM DSDM distinguishing features distinguishing features

 DSDM DSDM— —distinguishing features distinguishing features

 Similar in most respects to XP and/or ASD Similar in most respects to XP and/or ASD

 Nine guiding principles Nine guiding principles

Active user involvement is imperative. Active user involvement is imperative.

DSDM teams must be empowered to make decisions. DSDM teams must be empowered to make decisions.

The focus is on frequent delivery of products. The focus is on frequent delivery of products.

Fitness for business purpose is the essential criterion for acceptance of deliverables. Fitness for business purpose is the essential criterion for acceptance of deliverables.

It ti d i t l d l t i t t

It ti d i t l d l t i t t

Iterative and incremental development is necessary to converge on an accurate Iterative and incremental development is necessary to converge on an accurate business solution.

business solution.

(6)

Dynamic Systems Development Method Dynamic Systems Development Method

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided

with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 11

DSDM Life Cycle (with permission of the DSDM consortium)

Scrum Scrum

 Originally proposed by Schwaber and Beedle Originally proposed by Schwaber and Beedle

 Scrum Scrum distinguishing features distinguishing features

 Scrum Scrum— —distinguishing features distinguishing features

 Development work is partitioned into “ Development work is partitioned into “packets packets””

 Testing and documentation are on Testing and documentation are on--going going as the product is as the product is constructed

constructed

 Work occurs in “ Work occurs in “sprints sprints” and is derived from a “ ” and is derived from a “backlog backlog” of ” of existing requirements

existing requirements

 Meetings are very short Meetings are very short g g y y and sometimes conducted without chairs and sometimes conducted without chairs

 ““demos demos” are delivered to the customer with the time ” are delivered to the customer with the time--box allocated box allocated

(7)

Scrum Scrum

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided

with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 13

Scrum Process Flow (used wit h permission)

Crystal Crystal

 Proposed by Cockburn and Highsmith Proposed by Cockburn and Highsmith

 Crystal Crystal distinguishing features distinguishing features

 Crystal Crystal— —distinguishing features distinguishing features

 Actually a Actually a family of process models family of process models that allow that allow

““maneuverability maneuverability” based on problem characteristics ” based on problem characteristics

 Face Face--to to--face communication face communication is emphasized is emphasized

 Suggests the use of “ Suggests the use of “reflection workshops reflection workshops” to review the ” to review the work habits of the team

work habits of the team

(8)

Feature Driven Development Feature Driven Development

 Originally proposed by Peter Coad et al Originally proposed by Peter Coad et al

 FDD FDD distinguishing features distinguishing features

 FDD FDD— —distinguishing features distinguishing features

 Emphasis is on defining Emphasis is on defining “features” “features”

a a feature feature “is a client “is a client--valued function that can be implemented in two valued function that can be implemented in two weeks or less.”

weeks or less.”

 Uses a Uses a feature template feature template

<action> the <result> <by | for | of | to> a(n) <object> <action> the <result> <by | for | of | to> a(n) <object>

 A A features list features list is created and “ is created and “plan by feature plan by feature” is conducted ” is conducted

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided

with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 15

 A A features list features list is created and is created and plan by feature plan by feature is conducted is conducted

 Design and construction merge in FDD Design and construction merge in FDD

Feature Driven Development Feature Driven Development

Reprinted with permission of Peter Coad

Reprinted with permission of Peter Coad

(9)

Agile Modeling Agile Modeling

 Originally proposed by Scott Ambler Originally proposed by Scott Ambler

 Suggests a set of agile modeling principles Suggests a set of agile modeling principles

 Suggests a set of agile modeling principles Suggests a set of agile modeling principles

 Model with a purpose Model with a purpose

 Use multiple models Use multiple models

 Travel light Travel light

 Content is more important than representation Content is more important than representation

 Know the models and the tools you use to create them Know the models and the tools you use to create them

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided

with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 17

 Adapt locally Adapt locally

References

Related documents

1) In terms of content of abstracts, guidelines provided by 12 universities in Turkey showed that there are ten content criteria (i.e., purpose, statement of problem,

SHRM (strategic human resource management) – linking HRM to the business strategy, designing high-performance work systems (HPWSs) and adding value through good people management

The actions of antagomir-10b are highly specific, leading to reduction of miR-10b, but not miR-10a or other miRNAs examined. Although systemic administration of the miR-10b

ETH-CC (Ethernet Continuity Check - Fault detection) ETH-LB (Ethernet Loopback - Fault acknowledgement) ETH-LT (Ethernet Link Trace - Fault location).

Enhancing knowledge, developing self-management skills, and building confidence are considered to be important variables associated with improving outcomes, including health-

The second part describes aspects of drama beneficial for language learning in a professional context and gives a concrete teaching example: theatre projects with a focus on

Pgp and ABCG2 expressing primary samples are less sensitive to AZD1152-hQPA induced pHH3 inhibition although 50% inhibition of pHH3 was achieved in nearly 95% of these samples