当前位置:首页 >> 工学 >>

Extreme Programming Practice and Reflection in Global_图文

浙江大学 硕士学位论文 Extreme Programming Practice and Reflection in Global Center Project 姓名:张平 申请学位级别:硕士 专业:计算机应用技术 指导教师:周波 20060601

至!型堕璺旦堕竺!!皇!兰!!鱼!皇!!曼堡!!呈兰!苎

AbstraCt

Traditional

sofh^『are

deveIopment

moves

the

project

more

cIearly
are

from

a

requirements,speci秆catiOn phase,thrOugh successiVe designs lhat

eValuated

and renned,unt¨lhe system is buiII and tested.DOcumentatIOn is leveraged in each step tO tfansfer informatlon.H0weVeL in tOday's wOrId Of rapidIy changing the business and techn0109y requirement,the pressures tO cOnlpelIing SOfh^,are
a

deliver sOfh^,are tO rethink In of

quickly, change quickfy, and change traditional paⅢcuIar, attentiOn sOftware E)(treme engineering

O舱n

are

reasOns

practices.

Ag.1e

DeVelopment, amount

Programming(XP),has

ga|ned

signmcant

as an

appropriate Iightweight prOgrammin9 paradlgm for high—speed and

vOIatiIe software develODment In this thesis,by examining the tailored XP practices.n Global Center indicate the associated benefits such
as

Project,we

increased capabi|ity tO lncIude emergent

requirements,improved produdi,,ity,increased custOmer invOIvement,enhanced cuslDmer satjsfaction,and increased
our

risk

management abiIity

MeanwhiIe,a

setback experience in

project

executjon is presented,indicating the Iatent

prob{em—lack 0fthe system architectural guidance—In XP practice.Acc0『dingly, the idea Of incOrporating System—Architectu re-Centric methOds inlO XP practice is e×amined and tentatiVeIy appIied to GIobaI Center summarize wOrk.
0ur

project

Fina¨y,we intend to

Obsen,aIiOns,啊ndings,and sOme recOmmendatiOns for lhe future

Key

Words:Agile

SOftware

DeVelopment,

E)(treme

PrOgramming,

SOftware

Archilecture.Cent ric MethOds.G10baI Center

2

兰!剑塑!!望!i翌堡盟璺翌!!!堡二!箜堕

概要

传统的软件开发模式,从需求一>设计.>开发.>测试需要层层环节,每个环节都要靠 相关的文档等传递各自的成果.但是随着现代社会的高速发展,对软件开发的要求 也越来越高,在当今无论是商业需求还是技术需求都瞬息万变,日新月异的环境里, 我们承受来自各方面的竞争压力,包括如何更快更高质量地开发产品,如何应对客 户需求变化之快,变化之频繁等.这些问题都促使我们不得不认真地重新审视传统 的软件工程模式.敏捷开发方法,特别是极限编程(xP),作为一种应对高速高变 更软件开发提出的轻量级软件开发方法学,已经受到业界相当大程度上的关注. 本篇论文通过对极限编程方法在GIobaI center项目中定制(裁量式)实践的回顾, 分析和总结,指出其相关优势,如:更有效地处理需求变更,即使到了开发的后期, 也欢迎改变需求;充分调动客户的参与力度,经常性地交付可以工作的软件,缩短 交付的间隔,有效提高客户满意度,以及降低项目风险等.同时,通过对项目过程 中一次挫折经历的回顾,指出应用极限编程方法时潜在的问题之…一一缺乏系统体 系结构的指导性.sEJ对此提出了"在极限开发实践中集成 svstem—Architecture-centric一系列方法"的概念.相应的,我们对此进行了探索和 研究,并在Global center项目中进行了实验性的尝试,希望对今后相关工作有所启 发.最后将总结我们在该项目实践过程中的一些发现和看法,以及对将来工作的改
进建议.

关键字:敏捷软件开发,极限编程,以系统体系结构为核心方法,Global

center

Chapter 1-IntroductiOn

In the past few years.Agjle methods and

princ.p|es

haVe gajned

a

signmcant

amounI Of atten廿On in lhe sOftware engineering矧ed.The r00ts Of agile sOf~vare development
can

be traced back

as ea

r|y as

1 960's and

even

beyond rI】.The

sta nIng口oint for the movement,howevef,was actuaIIy in mid 1

990's【2】,Slnce
have been

then,severaI methOds,

IIke

Extreme PrOgrammIng,Scrum,etc,

deveIoped A¨of these methods cIaim conformance to agile princ叫es put forward
in agiIe

manifeSto(htIp:,/,wVwag_Ieman№sto.org). prDgramming(XP),introduced
by

Extreme

Beck【3】.is
a or

one

and we¨-documenIed agiIe melhods.It ls
process for sma¨teams dea№g with va9ue

Iighh^,eight

sO№re

of the most popuIar deVeIOpment

rap川y changing requiremenls,The

methOdOIOgy js designed t0 de|iver the fealures pr0Viding lhe most business VaIue
when VOur custOmers need

them

XP empOwers the develDpers tO confidentIy

respOnd t0 Vague Or cOnstantIy changing requiremenls,eVen Iate ln the¨fe cycIe. XP aIso enlphasizes the peopIe factOr and team work.Customers,managers,and develOpers
are

a¨part 0f

a

team dedicated to

deIive—ng quaIity sOftware.A
success a

number of repOrts have been publistled,taking the fOrm Of anecdOtaI stories
or

Iessons—Ieamed from organizations lhat have adapted XP for
can

prDject

The XP Drocess

be cha旧cterized by short deveIOpment cycles,incremenlal

pIanning,eVOIutiOnary design,and its ability 10 respOnse lO changing business needs,The methOcl itse汗is bum ar.und what appea『s tO be easy-tO—understand sel of Dractices,which have been documented in the JiIerature(see references for

dela¨s).These practices
design.tesling

are

pIanning game,sma¨reIeases,metaphor,simple

(test.driVen

deVelopment), customer,just project

refaclo rIng,

pair

prDgramming. known
as

collective awnershlp,continuous|『lteg倍缸on,40—hotjf work sustaInabIe pace)and on—site
|n

week(also

rules and open workspace.

March,2005,GIobaI Center

was o仟lcia||y
a

kicked

ofF in TechnoIogy
a

Center(TC).Its main obiective is to buiId
centraI custDmer relatjOnship platfOrm

web-based system thaI provides

across

a¨geDgraphies and business lines
are

in S.Bank Corporatjon.A¨of the user requjrements idea at the Very

just

a

gene阳l

or

vague

beginning.We

were asked to cope with changjng Or inaccurate

custOmer requirements coupled with frequent changes in diredion and scOpe—a¨

with

the expectalion of de¨Ve ring the product within

a

predetermined(by

the

custOmer,sIakeh0Iden timef阳me. 0ur decision to adopt was driven mainIy by agile methodolog y,In pa川cular Extreme Programming. desire t0 better deal w_th incOmpIeIe business value
us a 0r

an Our

highly volat¨e there was

requIreme九ts and limeIy de¨Ver incrementaI

O舱n

enough knOwledge Of what was needed tO aIIOw

lO m0Ve fonⅣard w-th sOme cOmpIete picture t0 be fulIy

design and deVeIOpment withOut haVing t0 wa_t for

understOOd.People haVe noliced that itIs Very di仟icult for business peOple lO completeIy undersland what they rea¨y need Oflen we and which
see

frOm

sOftw谊re in the beginning,
are

that peOpIe Iearn du ring the prOcess what eIenRents aren'l Of【en the most vaIuab|e features
a are nlt

vaIuabIe

0nes

al a¨0bviOus un圳

customer haVe had

chance tO pIay wilh the sofh^,are AgjIe meIhods seek tO take
as

adVantage Of this,encOuraging business people tO Ieam about their needs system gels bui|t'and to buiId the system in such incorpOrated quickly Budgets,pIanning and funding the concept Of haVing working code appea¨ng n01 0nly tO we¨
us as a a

lhe be

way lhat changes always
a

can

are

cha¨enge,thus was
as

at the end Of short release cycIes
0ur

develOpment Organization,but tO

customer

This thesis aims lo take GIobaI Cenler proiect

as

a

XP

case

studV It's

our

f.rst

attempt with Aglle techn.ques and Tn pamcuIar E)(treme Programming.1t wouId be
vaIuable 10 address Ihe probIems&successes we encOuntered in
Our

attempts 10

adOpl lhe 1 2 practices Of Extreme Programming.As we afI know,n0 methodolOgy is suitabIe for every proiect.VVe ta¨ored Ihose practices Io adaptto the real project envIronment and process.Dunng the proiect execu乱on,we a}so found that,the AgiJe software deveIopment paradigm

(Iike XP)

and

fraditionaI

pIan—driVen
0ur

apprOaches each

have their slrengths and shOrtcomings.Besides sha rIng

experiences in la.IOred adOp"0n 0f巳,ctreme PrOgramming,we aIsO examine the OveraII ArchltecturaI guidance,which is Often ignOred by XP develOpers.A lessOn taught by
our

pn哪ect

experIence w川be presented,in particular f0¨Ows

The怕mainder Of this thesis is Organized

as

Chapter 2 proVides the related work around Ag订e methods,especiaIjy Extreme
Programm¨19, and als0 the research
On

Architecture·centric

methods

incOrDOrated intO XP. Chapter 3 presenIs the

oVera¨proIect

background,incIuding the
6

pnoject,product

兰!型!!!g望!!堕竺!生曼望!!!堡!!箜堕
0VeⅣiew,CRM
cOre

features and the Overa¨system architecture
core

Chapter 4 presents the adOptiOn Of E)(treme

0f

Our case

study,examining in pa川cuIaL

Our

practices in lailored giVe
a

PrOgramming,and

we

successful sha rIng the execution,

e×perienOe in conlrO¨ing the unpredictabIe prOcess via XP e×perIences,we descnbe eIiciting the}dea of
a

iterations.A№r
the

bad e×pe rience du ring

project

in∞rpOrating Archjtecture—centr{c
Our

methOds jnto XP pract}Ges.

Chapler 5 summarizes

experiences,怕ndings and future wOrk

Chapter 2.Related

Work

2.1 AgiIe Soft,II,are DeVeIOpment

The software development indusIry is plagued by 0f which
are

project

failures,qu计e

a

number

due tO the inapprOpriate appIIcatiOn Of cOnVentiOnaI deVeIOpment

process methodoIogies and to cope with
a

practices【4】.Currenl

practices appear to be unabIe
a

key problem area—change in the middle of

project,of
a

both

a

busjness and technjca J nature.AgiIe sOftware deVeIOpmenl is to sOlve this

recent apprOach

problem.WhiIe

itls not

a

panacea for a|I

sO讯惦re

development¨Is,it

has been shown to be change is pen,asjve.

successful in a九umber of projects,especia||y where

Traditional approaches assumed thaI jf we iust tried hard anticipate the complele set Of requirements
ea r|y

enough,we could

and reduce cOst by elimina"ng

change.TOday,eIiminating change early means belng unresponsiVe to buslness conditiOns——in 0ther wOrds, business failure. SimifarfM traditiOnaI prOcess

manaaement_一by continuous measurement,

errOr

identi们ca"On,

and process

re们nements——strOve t0 drjve variatjOns Out of prOcesses.This apprDach assumes thal variations
cause are

the result 0f errOrs.TbdaM while process prOblems certainIy
cause

sOme errOrs,e)(ternaI envIronmentaI changes

cmicaI

varialiOns.

Because we cannOl eIiminate these changes,driVlng dOwn the cOst 0f respOnding t them is the OnIy Viable strategy.Rather than eliminatIng rewOrk,the new strategy js to reduce jts cost,HoweVeL jn not

juSt

accommodatjng change,but embracing
0ver

it,we aIso must be careful t0 retain quaIilⅥExpectatlOns have grOwn

the

years.The market demands and expects jnnOVative.high—quaIity SOftware that meets its needs——and s00n.A口iIe melhOds Their strategy is to reduce
are a

respOnse tO this
a

expecla怕On.

the∞st

of change throughout

project.[5】

2.1.1

Agile Foeal Vhlues&Characteristics

The"Ag|le MoVemenr'jn software industry saw the Ijght of day wjth fhe Agjle Software DeVelopment Manifeslo

【61
8

pub¨shed

by

a

group

of

software

pract;t;oners and consuItants in

2001(Beck et
are

a1.2001:Cockbum 2002a

17】)The

fOcaI VaIues honon≥d by lhe agjIists

presented in the fO¨Owing:

Agile FocaI Values
·

lndividuals and interaclions

ovef

processes and tools

·

WorI【ing sofb7are oVer
Customer co¨abora"on

comprehensjve documentatjOn

·

oVer

contract

negotjation

·

Responding to chaⅡge

oVer

following

a

plan

These central VaIues that the agiIe

commun时adheres

to are

The ag.Ie mOvement emphasizes the reIationship and communaIily Of sOftware deveIopers and the human roIe refIected in the

∞ntracIs,

as

opposed to

institutionaIized processes and developmenl tooIs

The vitaI obiective of the

software leam is tO con莉nuousIy lurn Out lested wOrking sof【ware New releases
are

prOduced at frequent inten,aIs.in some apprOaches
Or

eVen

hou—y

0r

dai|y,but

mOre usuaIIy b_-mOnthIy

mOnthly The reIaljonship and cOOperation between lhe
OVer

deVeIOpers and the clients is giVen the preference
the impOrtance Of weIi

strk建contracts.althOugh

dra他d
The

cOntracts dOes grow at the same pace as the size Of

the

so什ware

projed.

deveIopment

group,

comprising

both

software

developers and custOmer representatives,shOuId be,^fe¨nformed,competent and authorized to consider possjbIe deveiOpment prOcess life—cycle. According to Hjghsmith and

adjuslment

needs emerging

du rjng

the

Cockburn(2001)【5】,1,Vhat
an

is new about agiIe
as

methOds is nOt the practices they use,but their recOgni锄On 0f people primary driVers of

the

pr叫ect

success,coupIed w.th
a

intense focus on efrectiveness

and maneuVerabiIitV Thjs yieIds de"ne
an

new combinaliOn 0f VaIues and principIes that

agile wOrld View" giVes the folIowing characteristics to agi}e

MllIer(2001)【81 projecls:

so‰are

pfocesses

frOm lhe fast deIiVery

poi nt Of View,which a¨Ow shOrtening the life—cycle Of

9

兰!型!!!g芏!!塑堡!堡垒堕!!塑!!!!!堡
AgjIe Process CharacterjStjcs
1.Ⅳ【odularhy
on

develOpment

process

1evel

2.Iterative wim short cycles enabling fast verincations a11d corrections 3.Time_bound wim iteration cvcles fbm
one

tO six weeks

4.Parsimony iIl deVelopment process removes a11 unnecessary activities 5.Adapt~e with possibIe emergent new risks 6.1ncremental process approach mat a110ws in small st印s

f妇ctioning application
me risks

building

7.ConVergent(and mcrememal)印proach minimizes
8.People—oriented,i.e.agile processes favor people technology 9.Collaborative aJld commLulicative working stvle

Over

processes and

2.1.2

Existing Agile

Methods

The mOst commOnIV cOnsidered agile methOds include:Extreme PrOgramming

(Beck 1999b)【31,Scrum(Schwaber 1995【91:Schwaber and BeedIe 2002 r10】),
CrvstaI famiIv of methodoIogies

(Cockbum

2002a

【7】),

Feature

Driven Process

DeveIopment(PaImer and Fefsjng 2002[11I),the (Kruchten
1 996

RationaI Unmed Systems

f1 21:

Kruchten

2000【1 3】),

Dvnamic

DeveIopment

Method(stapleton 1 997 11 4】),Adaptive SofCware DeveIopmenl(Highsmith 2000

【151)and

Open Source Software

deVeIopnnent(色.g.,0'ReiIIy 1999【16】).

Pekka Ab阳hamsson【1

7J

summanzes each method usfng three selected aspects:

key pOints,special fealures and identi竹ed shOrtcOmings.Key pOinls detail lhe methOds'principal aspects
Or

sOIutiOns and speciaI features describe

One Or

severaI aspects Of the methOds lhat di竹brentiate them from the OIhers.Finall y' Identmed shortcOmjngs missing. relate lO sOme aspects 0f
a

method thal

are

cIearly

10

兰!剑!!盟竺!!丝堡!堕鱼翌!!型!!!!!!!
¨:

I辅y予 IoIi藕括

零羹醚l鑫.

翱矧函∞霉
driven sma||

:!j I|-_l蛊^l;鹳盖一^琏h蠢r tco| _叠i 七一

嘲瓤

S

{:{;

XP

CuStOmer deveIODment.

RefadOmg
the

—the

WhiIe

indivIduaI Draclices are many situatiOns,

OngOing redesign Of system to its and lO

suitabIe for

teams,daily bu¨ds

0ve旧¨view&management
practices a廿entiOn
are

imDrove De—Ormance resDOnsiveness change.

giVen

less

Scrum

Independent, seff.Orga九izing deveIOpment 30-dav cycIes.

smalI,

Enforce a pa怕dIgm sh滑仃.om fhe and tO the

WhiIe
speci^c 30一day

Scrum how fO release and

details

in

manage the q,cle, the

teams, re}ease

"de氍ned reDeatab Je" "new

integratiOn

acceptance

DrOduct view

tests are nOl detai}ed

deVelOOment OfScrum"

Crystal

FamiIy Each

of has

methOds. the same
cOre

Techniques,

roles,

1_oO hⅣO

early Of

to

estimate:0nIy 8uggested

t00ls and sfandards

four

underlying

Va阱
seIecf

Ab川ty
the

lo most

methOds exist

vaIues and p rinciples

su№bIe
based
on

methOd p

rojed

size and criticaIny

FDD

Five_step

process,

Method design

simp¨cilyl
and the

FDD focuses OnIy On design and imDlemenlaliOn Needs

objecl—oriented
componenl feature)

ne.,
based

jmDJement

other suppOrtjng approaches

system by features,
o

deVelopment.Very shOrt IteratiOns.

bject

modeI'ng

RUP

COmDlele deveIODment

SW
modeI

Business mOde¨ng, t00l family support

RUP has scOpe hOw lO

nO

limitatiOns-n the

Of use.A descnptiOn la¨Or,In specific,to

including tOOI suppOrt. Activity driven rOIe

changing needs is missing

assignment

ASD

Adaptive
c引IabOratiOn missIOn-driven cOmDOnent

culture,

0rganizations
seen as

are

ASD Is mOre

abOut cOnceDts

adaDlive Creating Order of

and cuIlure than the sOffware Dractice

systems. based
an

emergent Of
a

IleratiVe deVeIODment

Out

web

intercOnnec旭d
individuaIs

Table

1:Exis咖g

AgiIe MeIhOds

2.2

Ext怆me Prog陷mming(XP)
a

This section simpIy gives E×treme

summary oVerview of E)(treme

Programming(XP)

Programming(xP)is

a

deI_berate and discipIIned approach to software management and programming methodofogies

deveIopment.It's is about that
are

project

designed IO enhance prDdu ction.Il wOrks by bnnging the whDIe leam

together in the presence Of simpIe practices,with enOugh feedback tO enable the team t0
see

where lhey

are

and IO tune lhe pracIices 10 their unique situa百On.

Since嵋s introduced in the early 1 990s by Kent

Beck[3】,E)(treme

Prog阳mming

has already been proven in many cOmpanies Of all different sizes and indust ries wO rId wide

Extreme PrOg阳mming is successful for stressing customer satisfactiOn a¨dOwn the rOad.The methOdOlOgy is designed t0 de"Ver the f色atures prOViding the m0St business vaIue when your custOmers need them XP empowers Ihe deveIOpers tO cOn啊dently respOnd tO Vague
Or

conslan削y changing requirements,eVen late in

the life cVcle.XP aIs0 emphasizes the people faclor and team wOrk.CustOmers, managers,and deveIopers
are

a¨part of
2

a

team dedicated to deIIvering quaIity

so什ware.XP implements develODment.

a

sim pIe,yel e仟ective way to enabIe groupware styIe

Extreme

Programming(XP)improves

the effIciency of writing soflware.This is

accOmp|ished by stream¨ning cOmplexily,de¨,,erIng lOp business VaIue ea—y and cOnsistentIy,and reducing the cOst Of nearly inevitabIe changes t0 the business ruIes,prOgramming env.rOnme nt,Or sOfh^,are desIgn.Many Of these practices have been part Of cOnVen"Onal wisdOm for years,but rethinking the.r interaction is the vaIue 0fXP

In its purest form,Extreme Programming is

sjmple.【18】The

central lenet is."Find

the essen"aI eIements 0f creating gOOd sO竹ware,dO them a¨0f lhe"me,and discard eVerylhing eIse"Programmers shOuld prOgram and make scheduIe

estimates.Managers shouId make business decisiOns.CustOmers shOuId chOOse the features they want and rank them by impOrtance. Extreme Programming proVides Its compeIIIng features
/ / / / / /

COmprehensiVe unit teSts, ShOn reIease cycIes, Adding 0nIy what's needed for the current task CO¨ecti,,e cOde 0wnership, COn瓤nualImpr0Vement,and Adding features in the Order Of ImpOrtance.

2.2.1

XP Process

According to phases:

Beck's(1999b)【3】desc ripIion,the
PIanning, lterations

life cycIe of XP consists of six t0 ReIease, PrOductiOnizing,

E×p10ratiOn,

Mainlenance and Death.

13

燃 愀 艘
Ⅲ∞《zt u z《zu■三《=
zP《uo Ⅲ∞《IL

~■勇 溪芦~.…ll州烈1, 颦≮勇 摹卜 岁 'j~,一~~…一j,7蠢0,,/
/

一一委
reIease. phase requires
near

'~一一一一一一一I一一一一7

l

In lhe ExpIO阳t-On Dhase,the custOmers write to be incIuded in the仉rst

Out

the stOrv cards thal lhey wish lhe

MeanwhiIe

proiect team

famiIiarize

themseIVes w随h the tOOls,technDl09y and prac稍Oes they wIll be

us,ng,n the
an

pnoject.The

PIanning

phase sets the p rIority order for the slo—es and

agreement 0f the contents 0f the nrst smaII reIease is made.The Ite阳tiOns tO

怕Iease phase IncIudes severa|iteratiOns Of the syslems before the f.rst reIease
The ProductiOniz-ng e挝ra tes裔ng and checking Of the

pemrmance

Of the sVstem before the sVstem

can

be released tO the customer

,mer the行rst reIease is productionized for cuslomer use,the XP prDIect must bolh
keep the syslem in the prOductiOn rUnning whiIe aIsO prOducing new iteratiOns.1n Order tO dO this,the Maintenance phase requi陀s suppOrt tasks.The Death phase is any stOries tO be
an

effDrt alsO fOr custOmer
nO

when the custOmer dOes

10nger have

impIemented.This is the Iime in the XP prOcess when the
as nO

necessary dOcumentation 0f the system is订na¨y written the architecture,desi立n Here comes how
Or

mOre changes tO

cOde

are made.

a

typicaI Exlreme PrOgramming scenariO might lOOk from lhe
a

prOgrammers point of VIew.This is sOme idea 0f the work们Ow in
an

Very generic prOcedure Out¨ned here,gi训ng vlronment.

XP

en

4

2.2.2

XP Core Vhlues

Extreme Programming practices

are

based

on

four

VaIues:(1)communlcatlon,(2)

simp¨city'(3)feedback,and(4)courage

XP Core VaIues
·Cbmm"n耙af『on emphasizes person—to—person la九ng,喝lher than
documents that expIain the softWare SeVeral XP p懵ctices ca¨for an on-site customer,so a lot of time is spent communicating with that custOmer

·

S,mp"嘶is

an

xP value that

ca¨s for the solution ofthe

cuslomer's p帕blem lo be unpretentious Both deveIopers and cusIomers easjIy understand the so什wa re soIution ·Feed6ac七means that

eVe叭hing done is evaIuated with respect Io how we¨It wo水s H0w we¨it works is indicaled through the feedback gained from exercising every worl(ing pan of the soIution
a re prepared to make imponant decisions that suppon XP practices wh¨e bui|ding and re JeasIng sOmethIng Of vaIue to the customer in each ite怕tiOn.This cOuId mean discarding code or taking the"me to refactor the design when

·C,ou阳ge means th al deveIopers

it turns Out thal prevIOus decisiOnS

are

madequate

XP prOgrammers cOmmunicate with the|r cuStOmers and fellow proarammers 丁打ey keep t扣ei『cfesjgn slmpIe and clean,丁hey get feedback by tes}jng thejr software starting
as 0n

day

0ne

They de"ver lhe system tO the customers
as

as

ea—V

possIbIe

and
are

ImpIement changes

suggested

With

fhis foundation

XP

prOgrammers technOIOgy.

able to courageous Jy respond to changing

requ.rements and

2.2.3

XP 12.Practices

The foIlowing figure aims lo gIVe you

a

quick grasp of the tweIVe
are

core

practices【3】

and phi|Osophy underlying XP These practices and trying 10 examine any
One sOOn

designed tO wOrk 109ether,

leads yOu tO the rest

XP Practices

紧"8

9Ⅲck

8umma叫cach"n1州咖删嘣…
Customers decide
on

mHH抽ggd州e
ofrckases based Pmgrammers

th scope卸d

tlmlng

月咖删叶衄The deslgn oftlle
transfonnatlons tcSts rnnnin昏

system

Is

evoIv鲥through

im一四nt呷1y
nemtlOn

enimaks

provided
thc

bv pr02mmme璐 demanded

ofT】le

exlnmg desI窑n th甜kecp a|I the

fundlon&lIty

bv the slories m thls

枷Ⅳ础船盯The sys四"ls
few

晰p佃洲村姆Afl
peo训e时one
afkf lmegmtm&the systemls p拈sor廿le

produ甜10n cOde

ls

wⅢt蛐by№

nlonths,befo雎solvmg

put mIO p∞duction ln a tbe whoIe prohlem New

难leaSes

a佗madeof确
The
set

8nywhe他矗Dmdailvto
ls

monIhb

Chn栅oⅣs抽姆删口H nomorelhn cqn;m鲥啦m h帆}fs wh明 bulhfro四Ⅲch∞d a"t∞t¨眦st
afcw

scrcen,l【eyboard/mouso

New code讧mtoErated wjth The

朋盯叩^or

shape

Ofthe掣s把m
shared

de6ned bv

a

meta脚10r or

ofmetaphors

knwcntbe
B1I the

custOme『and progr口mmc话

脚如缸函n
summa兀zed

oⅣ即d比o'删耵帅Evo吖progn嗍Impov四y anywh四曲e
4脚口H,wB曲s
N0

ch帅Ecs

a艘女sca—ed

code

At every moment.the design

runs

sys"mm a"ytlmelfthcy scemeop阳nunl哼 o*f妇曲砌m盯A cu§tOmerHbwl协thek4mfbll.tlme

忙sts,communlca忙s everythIng the programTllers want tO communicace.contams
no

O嗽洲rk a姗nd con螂Imveweek
us州∞of}e日u硎lvma
be addmssed

or

dupll龃fe∞出;and
once

删呵tlme EⅥn】妁jatedoven'me d驿口叮proHemsm甜musf

sI£nor

hast}1亡
can

忙west possibk cJasses 8nd TTlethods Thls ru】e

be

rl船Pro譬mmmers
Thcsc把ns Itefa£ion

as,"S8y everylhmg

and only册ce"
bv m{nufe
run

(肇佣m',b■d弹T№kam works 1n a Iar錾room w曲sm"I penphe盯Pa"ProgmmmeBn口咄帅

cubjc】e四ndIhc
compuIeB
seI

write unn把ns they

minute
alI

upInIhe cenko

a心co¨ected帅d

nlusf

co№c¨v

J删蹦协By州ng pan of8nExlmmete自lIll.you
ag%fhe

Custome惜wrltefundionaItests士orthe The§e【眈ts
should algO all

storiesln an

run,alfhou吐

slgn uplo 向¨0wthc rul髓Bm小cy"Just椭e Tules Thleam canchange the ruIes"anytlme asIong asth掣agmeOn hOw【kvwⅢ

Practically be made

spcak讯g,som目,mes a b"smess d≈cisl∞mhsl compan"g me cost ofshIppmg a known detect

efrecbHthechm

and the cOst Ofdelav

XP was suggested by

Beck(1 999)[3】to

be adopted gradua Jly"lf you want to try

XP for goodness

sake don't try to swa¨ow jt a¨at once.Pick the worst Droblem in

yOur current process and try sOMng itthe XP way."One Of the fundamental ideas

三!璺!!19堕!!!!堡!生璺!!!!!堡!!!!堕
of XP is that there is
no

process that fits everV

pro}ect

as

such,but阳ther practices The that

shouId be taIJon≥d tD suit the needs of individuaI proIects(Beck 1 999)【3] question is hOw far lhe individual practices and principIes we
can can can

be stretched

sO

sti|l taIk about practicin口XP?And iust how much
n0

we Ieave out?|n fact

there

are

experience njpOrts in which a¨the

practices Of XP have been

adopted.instead,a
been reDOrted
0n

partial adoplion of:XP practIces,as suggested by Beck,has

severaI OccasiOns

2.3

System-Architectu陀-Centric(SAC》Methods

FOr the past 1 0 years,the S0fh^,are Architecture Tbchn0IO口V Initiative at CameqIe Me J10n Universily's
a

SOftware

Enginee rIng

lnstitute

has

deveIOped

and

promuIgaled

series of architecture—centric methods for architecture desian and fo.nfegrale Sysfem—Archilecfure.Cenfric

anaIySis.one 0f the}r studjes aims

design and anaIysis methods InIo Extreme Programming t0 incIude high—IeveI architectural pIans t0 provlde

framework【1 9】II
essential

aims

big一口icture

infOrma"On and using design

patterns

and archifecturaI sOIutiOns rather than

simpIe design tO handle fOreseeabIe chanae.

2.3.1

oven唷ew

Arch计eclure—centric regularize the

aclivities,shown in the f0¨Owjng怕gure,can by emphasizing quaIity

inform and and

deVelopme几t prOcess
0n

attrjbutes

focusing earIy

architectu阳I decjsiDns.

7

DeVelopmenl

modeIs:(a)Ext怕me

Pmgramming and(b)architecture-centric

Among lhese SEI melhods,the Quality Attribute lhe development team understand

Workshop(QAW)【20】can
by
On

heIp

the prObIem

eliciting qua|lly an—bute business qoals

requiremenls in the form Of scenarios.Basing the scenariOs
ensures

lhat the deveIOpers address the right prObIems.The AtlrIbule—Driven the software architecture by basing Ihe desjgn

Design(ADD)method【21】defInes
process
on

lhe prioritized qua|ity attribule scenarios that the software must fuI啊¨_It
ensure

helps identify the mosl important lhings to do to

that the design is

on

t阳ck

t0 mee"ng key quaIity attribute cOncems and deIiverlng value 10 the customer The Architecture Trade—ofr AnaIysis Method

(ATAM)

【22】
on

and

Cost.Benem

Analysis

Method(CBAM)【21】provide
On

detajled guidance

analyzing lhe design
can use

and getting earIy feedback design practices tO

risks.The developme nt team
a

incremental

deVelop

deta¨ed

design

and impIementaliOn from the
ensure

architecture.ArchitecturaI cOnformance and reconstructiOn techniaues consistency bet,Ⅳeen the archilecture and ImpIementation. These SEI methods

can

enhance XP practices.Using these meIhOds results in

an

18

三!宴里旦旦竺翌!!皇!苎!堕鱼堕垒竺璺塑!垒曼璺兰
aTchjtecture—centnc approach, arch.tectufe inform
connects

business

gOals

to

the

jmpIementation,quaIity attr.butes

the

design,and architecture—centric

actiVjlies driVe lhe sOftware system I.fe cycIe.These methOds make deVeIOping sOftware easier and more
consistent

AIlhough designing the architecture

is

integraI lO the approach,the leVe J Of deta¨can be翻exibIe. The architecture deveIoped by lhe ADD heIps Iocafize the e仟bcts of des.gn

changes caused by changing functiOnal requirements,since the architecture is in竹uenced by the quaIily att ribule requirenlents and is not a仟ected by changing functiOnal requirements. 1ncludin口architedure in this waV mi口ht alsO delaV

refactOring,HOwevef,investlng in the archltecture means that it wIll take IOn口er tO gel tO code.because the firsl ile阳tjOn is what sOme peopIe ca¨a"zer0一feature release."In such fbatures
are a

reIease,the architecture is put in place,but

n0

user—visible

deIivered tO the customeL

2.3.2

SAC

Methods

and XP Values

The benefit Of incIuding the SE J methOds is tO address quafity att—butes in explicit,meChodical,enginee"ng—p rincipled way In summary


an

The architecture—centric methods place

an

emphasis

0n

quaI'ty attrbules

rather than functiOnality.They als0 heIp facilitate communjcatiOn.


The archjlecture—centrjc methods heIp竹II gaps in the XP design process, by prOViding speci节c adVice
1. 2.
0n

1he ellcilalion and documentation 0f whjch design OperatiOn w¨J

quallty attrIbute
a

requ'rements quaIity attrIbule

achieve

desired

feSDOnSe

3

hOw

tO

analyze

the

result

tO

undersland

and

predicl

the

cOnsequences 0f the design decisions in lerms Of rjsks,tradeO仟s,and

uItImateIy retum


on

investment(R01)
melhods a|I
use

The

architecture—cenlric

cDmmon

concepts:

quaIjty

att ributes,architectural tactics,and a"Views and BeyOnd"apprOach t0 documentatjon that Ieads to more effjcient and synergislic 1_able 2 shows hOw SE{concepts and methOds
lq

use[24】.
w谴h the

can

be used in

ke印lng

agiIe

phiIOsOphy

0f

rapid

and

flexible

deVeIOpment

and

the XP
are

Values

Of
a

communication,simplicity,feedback,and courage.More details
lechnicaI nOte

aVailable jn

XP,,鱼me誊
CommunicatiOn

V磅{u毒Add翻下h?a的hi'i鞠;Ij【|Iii细姆-cent一】c:||Il獯lhods
C0吼一efFective methOds faci|itate Inte阳ctiOn amOng
a

diverse

group of stakehOIders attr怕ute requirements
s0

stakehOlde悟cOncems
are

regarding qua¨ty lO

captured design.

and

communicated

deve}Opers

they

i棚uence

Simp¨city
Archilecture architectIng system desIgn is cOarse-grained, and Only enough
a

is done tO ensure thaI the w川 meet its has

design w川prOduce at州bute of

that

quaI时
a

requirements. and
uses

Arch.tecture

evaluation
as

notiOn

triage

lechniques such

utIIity trees and prio rltizatiOn to focus ef佑ns.

Feedback
Architecture understanding arch计ecturaI eValuation the

provides
tradeo仟s,
are

earIy risks.

feedback and wnh R0l

for of

technica| Risks

decisbns

assOciated

technicaI

decisiOns and business gOaIs.

Cou怕ge
Risks
are

expOsed

earIy

in the

life

cycIe,giVing

develOperS Architecture

justification mpad

for invesling resources to mitigate them
sO

aIIOws for bener p|anning

deVeIOpers

can

bener eslimale the
can

of requirements change.Change lhat is foreseen

be

planned for and IOcalized in the design

Table 2:The Architeclure-Centr-c Methods and XP V削ues

Chapter

3.Project

Background

This chapter simpIy giVes

an

introduclion to GlobaI Center

project.

3.1 GIobal Center

Project OVeⅣiew
project
is Io achjeve
a

The main

objectiVe

of lhe GIobal Center
acrOss

centraI customer

reIationship pla削-orm

a¨S-Bank C0rpOraliOn diVisiOns This enab Jes senior

management tO t旧ck the cDrpDratjOn custOmers and lhe servjces&products prOVided tO each wilh
a

brOader scOpe

acrOss

lhe corpOratiOn.



A S—Bank COrpofatiOn's proprietary web-based tOOI that prOvides customer infOrmatiOn COrD0ratiOn
across



geOgraphies

and

business

¨nes

in

S—Bank



A One—stOp shOp 10

see

aI|custOmer re|aljonships in

0ne

comprehensjve

and dynamic cuslOmer manageme nt 100l


A sOurce that O仟ers custOmer-facing indl训duaIs with information tO better
serve 0ur

custOmers



A web—based tOOI向r VitaI S—Bank appIicatiOns FAR




Fund and Asset Reporting System Customer Data Management System SSgA's COre Cusfomer OperatiOn丁OOl Newly deVelOped CustOmer RelatiOnship Management T00



CDMS— oNyX- CRM






昼[!自熊d蜘堕Mgb!g自也M堕[&


SpOnsOred by ExecutjVe Manageme几t,under the direcfiOn 0f S—Bank CEO O仟ice



Co¨aborated by

a

corpOrale—wide steering COmmIttee
21

三!复堕!g望!!竖竺!¥鱼里!!!!!!!!型!


SuppOrted by wOrIdwIde

a

Greater Group comprised Of more than 60 representa"Ves



ApprOved by

a

gIObaI LegaI and COmpIianloe team cOmprised Of
across

10^,er

30

reDresentatiVes


a¨business lines in S—Bank

Designed and deVeIoped by the TbchnoIOgy Cenler in Hangzhou,China and BOston.MA.USA

0fficia|Iy kicked off in TechnoIogy Center in March,2005,Global Center successfu¨y completed the first—phase product in Februam 2006 The deVeIOpmenl and 0fricia¨y is moVing into
a

project

laughed the

project
a

mature enhancement

wOrking mOde J,with cIear Iask priOr沌y IIsls for each deVeIOpmenI phases.The team is stead¨y mOVing ahead in sustainabIe pace

3.2 CustOmer Relationshlp Management TOOl

As we mentioned development of
a

ea rIler,

Global

Center

project focused its而rst-phase

on

web·base Customer Relationship

Management(CRM).r001.

What
CRM
used
to

is

CRM?
is
a

stands for Customer Relationship

1e帅more about customersl
are

Mana驿ment.It

pmcess

or

met上10dology

needs and behaviors in order to develop stronger

relationships with them.There

many techn010 glcal components to CRM,but
a

thinkin窖about CRM in primar.1V techn0109icaltemls is
to

mjstake.The more useful wav

think about CRM is

as a

pmcess that wjll help bring together lots of pieces of

infomlation about customers,sales,marketing effectiveness,responsiveness and market
trends.

CRM helps businesses use techn0109y and hurllan resources behavior ofcustomers and廿,e v8lue ofthose customers.

to

gain insight int0 the

Since the

late

1 990s

CRM

has

gained

grOwing

pOpuIa rity,

and

becOme

a

buzzwOrd especiaI|y amOng business practItioners and cOnsuIlants Using CRM,a business
/
can

Provide better customer service

三!堕堕!g堕!!竖堕盟鱼堕!!型!!!!!堕
/

lnCreaSe CuStOnler neVenueS

/ / / / v,

Discover new custOmers CrOss se¨,Up Se¨products mOre efrectively He|D saIes sta仟c10se dea Js faster Make ca¨centers more effjcient

Simp"fy

marke"ng and saIes processes

MOre and more Iarge corpO旧tiOns stan 100kjng for lhe most suIfabIe IT sOIutiOn for CRM and explore

projects

for this sake.S—Bank has successfu¨y achleved this

goaIby GIobaI Center

project.

昼曼丛!垒垒!地昼!垒女蓟昼£D缝£


A system that prOVides

a

gIObaI OVen,iew Of each custOmer



The infOrmation contained is cOmp¨ant with data priVacy and custOmer cOnfiden"aIity regulatjOns gIObaIfy



A vehjcIe that d eJivers immediale vaIue wiIh cOntinuOus enhancements and deveIODments



A cOmprehensiVe,user f—endly t00I thal includes a¨business lines a¨geOg raphical IOcatjons

acrOss

垡量皇[墨垒!!b窒昼B丛IQQl


ExecutiVe and senior ma九agement ReIatiOnship management SaIes DersDnneI CustOmer—facing business
users







垡B丛§)隆!!也E曼§地瞠§


Customer DrOfiIes DOcumentatlOn storage
areas



for each custOmer



Calendar and email func铂0nality Query CentraI,for dynamica¨y search and report





Securjty ta-lOred tO each

user



ReguIar dala maintenance ensuring integr.ty

The fo|loWIng diagram shows the major user stories in GIobaI Center CRM tooI. Tvvo kinds of users are defined:1)the regular GC user—Ihe corporation executiVe and senior managers and customer relatIonshIp reIated personneI:2)GC administer—Our B0ston business group

三垒型璺!旦竺翌!!呈堕!塑鱼堕!竺璺!曼!垒皇皇堡 3.3 OVera¨System

Architectu陀

As we wm discuss detailed lateL GlObal Center adODts J2EE fou卜tier arch.tecture

1)CIient 11er:Browse卜based cIient,Java applet
adopoed
as

ena bJed,Macromedia

F Jex is
user

fhe prese几tafjOn fier sOIutiOn tO prOvide user-friendf弘rfcher

exDerience

2)Web Tier:Web
contrOl
user

componenls

are

depIoyed
user

In

Web

Container

of

lBM fIOw,

VVebsphere AppIicalion Sen,eL tO handIe

requesls and

screen

itera"On and present retrieved infOrmatlOn tO cIie丌t

3)

BusIness Logic Tier:EnIerprise Java Bean components containing business fules
are

depIOyed tO EJB COntainer Of lBM

Websphere

AppIica蛀Of,Server,

tO access enterD rise data in ElS tieL

4)Enterprise
Center

Information

System(EIS)tief:Oracle

9l database is adopted to

achieve the data persistence in GIObaI
accesses

Center.and meanwhjIe,G J0baI

and interacts with Other enlerprise informaIjOn systems like

cDrpOrate Exchange Sen,er

The f0¨awing figure shOws the Overa¨sysIem archjtecture 0f GlObal Center

三垒剑堕璺望型璺!!皇!苎!!!鱼堕璺竺璺!皇!!皇璺堕

.—∑

j■.)7

GIObaI Center OVe陷¨System Architeclure

三!剑!苎!望型竺堕呈!兰!塑鱼堕型!皇堡!!皇墨!墨
旦垒!鱼£垒盟l墨!曼D墨曼丛垒堕丛!皇
The Data Persjstence M0dule jn GIObaI Center aims tO provIde the fo¨Owing functlona¨"es:

1)Store S—Bank customer information,with monthly update and dynamic query
enabIed

2)Store the history informalion during usage,incIuding customer interaclion
109istics, custOmer interacIiOn narratives,
access

Onl|ne

dOcuments,

customer

cOmments and messages,user

statislics for audIting,elc

3)

Store and update the common information used by GIobal Center llke

project,

Location for customer inte阳ctiOn.GIObaI Address BOOk.Time ZOne

mapping etc.

4)The

Data Persislence ModuIe consIsts of the fo¨owIng three portions: Application Logic ModuIe,which heIps

5)∈进orage

to(a)communicate

bet,^,een

EJB business Iogic tier and the database:lhe separa瓠On 0f business IOgjc tier and dalabase 10ca¨zes the efTects Of any changes to each OtheL and enabIes the extensbility for the fulure new

features:(b)improVe

the system

pe№rmance
Center

when Ihe business 109ic is Implemented by comple×database

OperatiOn,like unIte,delermIne and iterative search in muItlpIe tables:GIObal has Very gOOd exampIes in 0n¨ne share dOcumenls, custOmer

inte阳ctiOn narrative,and Query CentraI functiOnaIities

6)Data Dump Scripts.As we mentioned before,S-Bank customer infomlation
has the requIrement of monlhIy updale,especialIy for the
as criticaIlnformation as

PrOfitabi¨ty This mOnthly updated infOrmatiOn w¨I be prOvided
sc ripls

sOme

tabIes in MicrOsoft Access dalabase.Data Dump heIp w.th the autOmated data transfer process.

were deveIOped to

7)A reIa拍onship database,which we chose O阳cIe 9i.

The EJB Business LOgic MOduIe in G10baI Center contains tweIve components with each taking
care

of One Independent fundion. shared moduIe,without proViding any functionality

Time-Zone ModuIe:it's

a

independentIy.HOweVer.with its help,some other moduIes,like Calendar.can

27

三!型堕!鱼堕Q!!皇堕!塑曼堕璺!皇堡!!皇曼!苎
easiIy conVen"me frOm User Va¨dation &
One

IOcatiOn tO anOIher

Access

COntroI

ModuIe:

the

user

aulhenticatiOn leveraae the

and
user

authOrizatiOn functiOnaIily is ImpIemented in this dOmain authen廿cation in this part,which means

mOdule.We
user

w…use Its Own domain id

and passwOrd tO IOgin tO GIObal Center,withOut remembering another pair 0f id,password.A Java appIet is impIemented here tO autOmatica¨y retrieve domain name(S—Bank has muItlple domain
se n,ers user's

in its int阳net,Iike CORP GA

etc).Upon

user

IogIn,the domain id and password wi¨be authen"cated againsI its OnIV after
user

cOrrespOnding DOmain COntrO¨er
access

authentIcatiOn passes,user's

p—vjIege jnformafjon wjlJ be retrjeved from database,and then fhe syStem
user

shOws

the informa"0n accOrding IO its Own priviIege Module: it's responsIble cusIOmer tO for retrieving and transfe rrIna
user

CustOmer custOmer

S—Bank &

informaIiOn,

like

prOf¨e

infomlation,

comments

messages,etc.User has limited pri,,ilege tO

access

its Own custOmers,and meanwhile it has is pre—de啊ned by GlObaI Center

0ther custome陪,which
user

Administrator upOn

setup.A¨the

accesses

tO custOmer Information w川be

tracked for aud…ng purpOse Track and
accesses

Audit ModuIe:

it's respOnsible fOr keepIng track

Of a¨the

user

tO custOmer infOrmatiOn for future audit purpOse.In Order nOt tO inte盯upl 0pera"Ons,thIs is implemenled by a—synchrOnism mechanism.in Driver Bean. The
user accesses use

0lher of

user

Message

trackIng

informaIion is kept

transfe rrIng tO the message queue in

server

Only when the syslem is under lOw

wOrkIOad,the lrackIng informa"0n w川be processed tO store t0 database.The a—synchrOnism implementalion
ensures

the

Overa¨pe№rmance

0f lhe sVstem.

Mail Module:it's respOns№Ie for sending customer interaction invilalion emails, and ret rieving
user

repIy emai|s

Rfc2445 and

rfc2446 de竹nes

the DrOtOc0I

standard for the meeting invitatlon ema¨iCaIendar MicrosOft OutlOOk and L0tus

Notes(S—Bank
this

uses

both of these for itS intranet mail syslem)only f0¨ow part of ils Own standards,which make them nOt fu¨V

standard,and they have

compat-bIe wiIh each 0ther This b rings much trouble t0 the impIementatiOn 0f mailing

functiona¨ty.When

sending meeting jnvitation emails.mail moduIe has to

wOrk with GIObaI Address B00k,Time Z0ne and F¨e UDlOad mOdules tO"nish the ma¨wrapping and sending.And with retrieving the
user

repIy ema¨s,it has tO pay

attentiOn t0 di仟erent mail fOrmals from MicrosOft OutIOOk and LOtus N0tes.and

28

三!鱼!苎!望竺卫!!呈!曼!塑鱼堕皇!里堕!垒皇呈堕
meanwhile,.t tlas take
care

Of periOdicaI c0¨ec舒On issue and garbage emails

CaIendar Module:it provides two maior func"ons around customer GustOmer CaIendar js DarticuIar customer Search
can a

inleraction(1)
a

useful tOOI t0 vlew a¨the jnteractions lhat Dertain tO

across

a¨buslness Iines around the gIobe,and(2)Ca}endar
are

be used tO search fOr in屯号ractiOns that
are

scheduled

Or

have taken

Dlace.BOth these functiOns

impIemented with

user access

cOntrOl,mainIy

impIemented in database 109ic.BOIh these functiOns work with Time—Z0ne moduIe
tO cOnvert time frOm
0ne

10caIion to anolher,which is reaIIy|mportant for large

cOrD0ratjOn Iike S—Bank.w-th O仟ices a¨around lhe wOrId

Nar阳tive Module:it prOvides
interactiOn that has Occurred

user

the abilitV tO summarize key compOnenls Of

an

OnIV lhe mee"ng host and lhe invitees Of

the

jnteraction w.|l be able to pDst notes surrounding the meeling detailed editing discussiOn pojnts, actions 口roblem
is

objectiVe,summaryt
concurrent

n≥quired and database

ne)(t

steps.The mechanism,

resOIved

thrOugh

10ck

which

is

comparatiVefy easy and gOOd enough for the reaI situation NarratiVe mOduIe wOrk with Ma'l module to achieve pubIishin口nar阳荫ves t0 meeting attendees,and

meanwh¨e work with Spe¨Check moduIe in the spe¨checking functiona¨M Query CentraI ModuIe:it provides

Web AppIicatiOn

MOduIe,lO achjeve

user

lhe

abiI时to

do dynamic,customized

queries around a¨the information in GIObal Center database.incIuding customer pro俞le.custOmer interaction lOgis矗cs and narratlves etc the search functiOnaIity,we need
a

Tb keep the fIex.bjljty 0f

cOmprehensjve parsing engine 10 cOnVert lhe

business ruIes tO correspOnding SQL scripts.As nlentiOned earIier,the{文Orage Application LOgic MDdule is responsjbIe for the SQL scripls execuIiOn,tO imprDVe the Overa¨system pe—.ormance Message Distribution MOduIe:it contains bOth static message djst ribulion and real-time message distr.bu舶On. The sta石c message distr.buliOn
a

incIudes

time—Iapse dist ribution modeI(message wiI|be dist ributed at and instant distr.butjon

pre.defined time)

modeI(message
message

w…be dis川buted rig ht

away).Both
via

are

imp}emented by da协base stOfe procedure picking up the right data accOrding t0 the time feature. Real-t;me distr.bu稍On is impfemented the

XMLSOcket interrace in FIex. SuppOrt Center MOduIe:it aims tO pr0Ⅵde GlObal Center administrator the abiIity
tO manage the system effectiVely and efFicientI弘m呛setup users,aud《t&tfack

29

三!型!!!g竺!!!!!!!生曼堕!!!塑!!塑堕
user

accesses,and update&distrIbule news etc.丁he functionaIity for this moduIe
user accesses as an

keeps growing.T矗ke audIt&t阳ck informatIOn accumu Jates enough tO aVOid dala
as

exampIe,the hIsl0rIc

lime gOes On,we shOuId issue. Paging

keep the design fIex.bIe mechanism is
a

0Verwhelming

900d

candidale sOlution tO such prObIem,and is being we¨adOpted in GIObaI Center OnIine DOcument

L-b怕ry MOdule:_I,s respons.ble for keeping dOcuments
user access

shared and cOrrectIy accessed accOrding tO

privi|ege.The f¨e upIOad

functiOn is ImpIemenled directly by Sen,let,and订Ie dOwnload is impIemented by relrIeving data frOm database vja Ihis mOdule

The

Web

App¨catIon ModuIe In Global Center contains MOduIe, Spe¨ Checker MOduIe,

seven

major

modules: F¨e

Cache

Prin"Prev硅}w

M0duIe,

UplOad/DOwnlOad

M0duIe,C0mmOn LOgic

MOduIe,Data

Init&AulO—update

MOdule and Track&Audit MOdule Cache MOduIe w¨l be discussed in deta¨ed in the Iater sectiOn.1t introduces bOlh Server—Cache mechanism and C¨ent·Cache mechanism,tO improve the system respOnse time.This improVement dramaticaIIy imp∞^,ed the CRM PrOf讣e Page
resD0nse time frOm 25 sec t0 Iess than 5 sec nO,M

Spe¨Checker Module aims lO pr0Vide the speII—checking functiOnaIity IO the frOnt—end te)cI input by user,and retum Ihe resuIt with cOrrectiOn informatiOn.A third—party prOducl, Spe¨ex—SDK, is adOpted and integrated intO GC FIex

lmDIementatiOn. Print,PreView MOduIe

prOVides

the functiona¨ty 0f preview and

p—nt page,

IeVeraging the fE buI{d—in plug·in.VVe ma.nly adopt two ways to retrieve the pa9e data to be

prlnIed:1)retrieVe

data directIy from c|IenI side,and

sen,er

send back

the conslructed page for p rinling:2)retrieve dala via EJB moduIe:il works we¨in perfOrmance,especia¨y when prinling huge data F¨e UpIOad,DOwnIOad M0dule prOVides tO upIOad州Ies tO JSP 10 impIement this functionaIity, since Flex

serVeL

We

Ieverage

1.5 doesn't directly support

upIOading f¨es.丁he data uplOaded from cIient w川们naIIy be s10red intO database, in terms Of bIOb.

Common Logic ModuIe accepts requests from Flex Remole Objects in cIient sIde,implements the IOgIc prOcessing Via EJB module,and retums the prOcessing
resuIl IO FIex c|ient. Data Init&Auto-update ModuIe is activated right afIer initiates the discussed
sen,er

ser,,er

is slarted and

data cache.The batch mOde updating data mOdeI has been Iaking inlO consideraliOn lhe mu川ple
server

ear¨eL

members in

producIiOn tOpOIOgy Track&Audit MOduIe has been desc r|bed in EJB Business LOgic MOduIe

The fO¨Owing sequentiaI diagram shOws hOw each mOduIe works and cOOrdinates with each Ot|1er

This is
access

a

sIOry abOut

a

user

accessing the cuslOmer dOcuments accOrding its

rights.storage Ap p|ication Logic Module implements the Access Contro|ln
user can

database,which means Only retum the documents that

access.EJB

MOduIe retrieves俐e informa们0n and creates the f¨e tree then presenlation tier.where the
user

sends il t0 the
user's

inte—吾ce is bui|t and rendered in

brOwser

Chapter 4.XP Practice&Renection

This chapter presenls Ihe

cOre

Of

Our

case

study,examining

Our

practices in
a

tailored adOptiOn Of EXtreme PrOgramming,and in pa川cular,we giVe expe rience In cOntrO¨ing the unpredIctabIe process Via XP expe riences,we describe eIiciting the idea 0f
a

successfuI sharing the execution,

iterations.A舱r
pnoject

setback experience du rIng the

in∞rporating

Arch.tecIure—centrIc methOds int0 XP practices.

4.1 XP Practice in GC

This section presents the lailOred XP adOptiOn expe rIences in G10bal

Center

project.A

XP praclice adoption summary is giVen,fo¨dwed with dela.|discussion

in form Of lhe Observa"0ns

4.1.1

Tailored XP Practice in GC

As stated

ea

rliel

0u r

need

tO
our

better

deal with incompIete

Or

highIy

vOIatiIe

requirements drOve prima州y

desire tO adOpt Extreme Prog ramming.As the
no

mostly widely used Ag¨e method0109y tO date,Extreme PrOgramming is by means a秆nished,p0Iished Idea.It Is based twelve pradices which suppOrt each Other suitabIe for everv
On

fOur values that

are

expressed by

It's 0bviOus that

nO

methOd0109y is

proiect.We

shouId be prepared to lailor those practices Io adapl

t0 the real envIronment and

DrOcess.

忏you wani lO lry XP,for goodness sake don'l lry lo swalIow it a¨aI Once.Pick ihe worsl problem in vour cu鹏nl process and仃y soIv¨19 illhe XP way.When il is眦 you r wO附probIem any m0|e,mse and吲)eal As you gO aIOng,if you日nd lhaI any of your oId praclices aren'l he叫ng,sfop doIng lhem.This ado叫on process glves
you a chance 10 bu¨d your own deveIopmenl

s驯e—Which you酬I have

lo do in any
as

case—协mⅢaale the risks shOuId XP nO¨∞rk for yOu and lo∞n椭ue delivenng you change.

~--Xent Beck《XP crentor)

4.1.1.1

XP Practice AdOption Summary

TabIe

3

presents



Of

the

practices

presenIed

in已I(treme

PrOgramming

ExpIaIned[3】and
≥一.

desc ribes how we approached them in GIobaI center 譬誊i量篓?

pro忙ct.
0 一董i 叠;|曩..:}

叠i.j

E斌晒赫《FI|}-_:b羲两潲m辆a1一黝酒蠹llee Ado砩晒 n.
Experien∞

囊毫量叠j.

一蔓薹:::::一?

茹兰:;::=

XP Practice

Adoption

GlobaI Center

PIanning game

Fully adopted

The business team(cu stomer)aclively gets.nvoIved in the pIanning game.The scOpe and reIease timing for the ne)ct ileratiOn is Ofricia¨y decided by business team, based stOries.
On

deveJOpme呲team's

estimatiOn

to

usef

Sma|1 releases

Fu¨y adopted

VVe keep del}Vering fu"y-{ntegrated inVOlVed in

business Values

limeIy|n

sma¨

releases,and deVelOpment

get cuSlomefS 9reatIy phase, with cOntinual

custOmer feedback.

f滟fa曲or

Fu"y adopted

Our mefaphor js fhe which contains
user

S筘iem FuncfjonaJ对spreadshe戗
stories updating continuOusIy

SImple design

FulIy adopted

This gOes hand—in—hand w代h refactO ring.It becomes a senOus endeaVOr and permeates jts way thrOugh the system

Testing

Pan.aIIy ad0Dted

China develOpmenl leam is respons旧Ie for Unit Tbst and part.a¨y System 1-esl,and for System 1-est BOstOn QA team js

respOns帕Ie

and

Acceptance Tbst

Tbsf—f汁st design is not Strictly adopted due lo the light ScheduIe and team experiences.AlsO,test autOma蜘On desen,es more attenlbn and research.

RefacIo^ng

F洲y adopted

Vve refactOr reguIarIM and the design evOl,,es smOothIy Vve take this
On

as

One

of the

cOmerstones Of Our

33

三!笪!!!g竺!!!!堡盟鱼堕!!型!!!!!堕
e仟ons jn 1mpro讲ng code More
as a

malmajnabll时and gtabn耐
persOnaI p阳ctices Ourselves

o舱n
pan

than not,the caff is to f;ocus on旭『acto—ng of
an

eng.neer's

Sometimes.n

refactoring.we

have found

doing whOlesale reen口inee—ng,but this doesn't happen

矾en

Pair programming

SparingIy adODled

AHhough we've tried毗it is not somethmg the team w【dely p旧clice¥.¨s difficult lo fuI|y adopted,due to the tighl scheduIe HOweVeL we've used cOde reViews tO

try and address code forth

standards.desj9几of行)(es,and

so

COljective dwnershiD

Funy adopted

VVe

cO¨ectively

0wn

trle

cDde

and

I叫tO

inspire

eVeryone's ownership to the whoIe peOpIe changing code eVerywhere

project

VVe haVe

Anyone shouId be

ready tO add VaIue Or nx bug tO any pOnion Of at any fime VVe aIs0 haVe
a

the∞de
Of cOde

strong

set

standards we enforce not OnIy at code reviews but aIsO
as

a

pan of the check—in process in Our sOurce—cDntrol

system.

COntinuOus inte9ra"on

Pan训ly
adODted

VVe do haVe continuous integration usuaIIy afber some hOursl new feature impleme兀l习tiOn.DeveIoper dOesn't merge the new code unt¨he nnishes the Unit Test and Smoke testing Automated this buiId sc—pts
are

aIsO

dev哥oped

t.№lp

pr.∞ss
a

Howevef,s{Roe瞧'g

aImost impOss惦le tO buiId tes"ng system,

cOmprehensive automated integratiOn cOuId几't be

cOntmuOus

pe晚c日y

adopted.

40一hour week

Bet皓r_and-
be壮er adODted

The team used to wo嫩ove吩me to meet

t毡M

deI沁e吖

date for lhe nrst some ile旧tIOns.Encou旧gingIM a竹er the订rst_phase produdiOn,the sustalnable Dace. team is wOrking at a

on—site customef

PartIaIlv
adDpled

Due tO the time d椎ereB0es be{ween Bosion ar憾C hina we GOuJdn't haVe
we
a

fu¨.廿me

On—s舱customef

HaweveL both

keep

eVery-day

cOmmunicatiOn

between

三!鱼!璺璺鱼堕!!!!堡!堕鱼里型竺苎塑!垒曼曼!苎
sides.via emalls. MSN
an

and

Tele—conference program tO

And for

m铂nwhile,

we

have Visiting

exchange each othel

representatives

lransfer

kn0,Ⅳledge and inspi广e trust.

C0ding standards

Fu}jy adOpled

VVe haVe the cOding standards,like Java prOg阳mmin9 Code S【andards,FIex prog怕mming COde S【andards, se—OusIy appIied

TabIe 3£xtreme ProgrammIng Practice Adoption 4.1.1.2 SOme Obsen,atiOns

We

fu¨y adopt"pIanning game"tO chart the ne)(t reIease's scOpe.It takes both and deVelopment team rea¨lies intO accOunt.The pIanning to balance customer inlerests w.th the expemse of lhe

business priOrities game's goal Is

deVelopment team

The team estimates task e仟On,whiIe the custOmer picks the

lasks for Ihe ne)(t jte旧tiOn,const阳ined OnIy by the teamls veIOcily Usua¨y,upon the starting Of deveIOpment iteratiDn,China IechnicaI team wi

0ne

prOvide the f0IIOwing information:


a

Es"mates:H0w much effbr£is req uired tO impIement a new fea亡ure Or竹x bug?HOw much work can be put inl0 the next reIease? Consequences:HOw w¨I VariOus business decisIOns impact the deVeIopment process and deVelopment e仟ort?



≯Process:H0w w川the team work IOgether and be 0rganized? Based
On

China lechnical team's estimaliOn.B0sIOn business team w川decide



Scope and prjorjty:Whal are the requjred sysfem f磅afures?Which features are mOst impOrtant and must be added now?Which features be pOstpOned?

can



date:When mustthe next reIease be availabIe?0bViOusly,lO make such dec}sjons,businesspeOp}e need informatiDn from deve}OperS
ReIease

35

三!型i!19竺!!堕堕!塑鱼堕!!型!!!!!!!
墨也§U匠£12签鲢
Given lhat requiremenls change Often,we keep reIease cycles shon and that each release produces
Our a ensure

usefuI,working soft,^,are sysIem that generaIes reduce customer risk,

business value for

custOmer ShOrt reIease cycIes

IettIng the custOmer quickly cOrrect deVeIOpment if there is any misunderstanding tO Ihe fealures

Here cOmes the release timeframe fOr GlObaI Center

GIobalCen协rP叫ectRel的8eTIm咖me
¨●r 05 ADr Feb 06

\
FlrstOemo h1 SS FirstLaⅢ

氆}

PoC ^c ive Constn

嘣on,P蛔89
M

bj怕Enhancer IentPhase

,

Every

Week
{|y

Bi-Week
EveryMO-'tl

A metaphor represents

a

cOherent View Of the system thal makes
are

sense

t0 bOth

the business and lechnicaI sides and represents"whal we metaphor is lhe System upda"ng cOntinuousIy.

trying tO dO"Our
user

FunctionaIity spreadsheet which contains

stories

When
Of
a

custOmers repOrt

a

bug,Or raise

a

new feature,they descrbe it in the form
are

shOrt StOry lhal explains what they itself. A¨ the st0ries
are

trying tO dO and hOw the prObIem updale in System FuncIiOnaIity

manifests

kept

spreadsheel(as
Darties.

shown in the

f0Ilowing啊gure),which

is mai ntalned by the lripIe

三!型!皇!望堕!!!旦!呈!堕鱼堕璺!苎!曼!!呈呈!呈
t£t&bⅡ岫
雌棼.警#q"Ⅷ2
i_ 州e耐啪"4
.


≥薰

缸珊越+4}{}_i


*,九

御…
i

蛳噼: 日t■m 白—酌■缸雌 誊豫: 譬鬣i
f怕雠■蛐●衲m麟 ^bmq黼-■槭b蠢
■I埘H^'靳

l驯9删"


柙幢1赫赫m
嘲f{‰艇∞#

!.

搿墨黼瑟镰j}{『{ 嚣誉睦笔.I_:¨

警弹

黼端辫鬻 "帅姻Mb岬^蛳i

…躁嚣黧

囊篡j
_=残蓦…i

麓嚣高麟
:__…_

嗍_一



渺謦
1抽∞

-臻曩一
:-

Ⅺ啦h_社¥H埘,

j薹薯i鬻落器 ≯≯'般!蠹密
{:;一燃中帅田4 ,-惜
.'::

嚣墨
'26m
12口)

铲1新ELP-:



麓囊:鬻:黪i t惝 "i ■i描嚣鬻
i嘏 Ⅲ

础3獬滞

雏i 蛳"酬.∞醑—M酶. _
¨

口鞴《I№黼W_M,

iij鳖鞘:
i

'ib■#*H*,p碳ii

"j


嚣篓懋;鎏.c 9女§蒯#№n
忡柳b"叩*即一'b《÷÷ 雌协-:嘲

J

H确■h"w

黧!慝黧霎慧, 麓j ≈m10f&t*};;::
j

W,.

浏i}...i≥
l鬻麓嚣 ‰∞四b∞f
≥.!P即一一

№拍懈删"鳓静鳓}j{¨

目*s}№∞Ⅻ·I自

口獬i九 自蛳*j

j薹萋

_;__

辫戮辫茹冀i

E埘reme

PfOgrammlng

encOufages

sta嘣ng w|th

lhe

simpIest

sOIutIO记

and

refactO—ng tO betler Ones.The desian in XP is kept as simpIe as pOssible for the current set of im p|emented stories,Programmers don't buiId frameworks and Kee p|ng design
as

infrastructure for lhe features that mighl be coming poss_bIe is driven by the fo¨owing lwo in current neratiOn,nOt the future

simpIe
on

as

reasons:1)it's economic to focus

tasks

Ones,to pfOmise delivefy pIan{of curfem
to undersland and adds

iteration:2)compIex design makes the system di仟icuIt
mOre cost tO any future modification design tO keep the design clean incrementa¨y

RefactOring goes hand—in—hand w硅h simpIe

An example wiII be presented in the sectiOn 0f"C0ntr0Ⅲng the unpredictabIe DrOcess—Iteratjons".

Tbst-firsl deVelOpme几l and aulOmated system test is prac盯ces adVocated by XP proponents GlobaI Center

One

Of the most impOrtant aspect for

HoweVeT,it's the

mos{d诵∞lt

project,and project

deserves more attenlion and further research. team

We

started the

W.th

a

only pamally

trajned.we

borrowed some

expe rienced deVelOpers tO heIp design high—leVeI architecture,bui|d the syslem framework and execute the prooflof.concept phase.The four main members,
37

whO'Ve grown

as

dOmain experts,were Iess experienced at the beginning,and we Due tO the tight scheduIe at the
a

seIdom tried test—first deveIOpment mOdeI before

啊rst phase,we cOuIdn't affOrd the effons Iearning and swjtching t0 di何色renl wOrking modeI
are

cOmpIeIely

SO wh.Ie lhe prOgrammers have written unit tests,these
Or

usua¨y done after

du rIng the development.It's simiIar tO lhe autOmaIed have the tests,which bu¨d
an can

system(acceptance)test.VVe do
But it seems tO be hardIy

be repeated effectively

pOssjble lO

autOmated"One—buttOn.down"

system tesl,due t0 the natu re Of Ihe web aDD¨catiOn. business Ieam fu¨y invOlved in the whOIe prOcess.

F0rtunateIy,we'Ve gOt

Our

WhIIe

China deVeIOpmenl Ieam is responsibIe for Unit 1_est and partia¨y System QA team takes charge of the System Test and Acceptance Test

Test,Boston They
are

the peOpIe whO best understand the business ruIes and d0 the great to the system quality

∞ntr№ution

XP prOpOnent advocates thal a¨prOdudion cOde shOuId be written by twO peOpIe at
One

screen,keV

bOard,mOuse.

It's

claimed

tO

be

criIicaI

t0

imprOving

c0¨abOratiOn and greatIy faci|itales ment0 ring and impr0Vements in engineering practice.Due tO the tighl schedule and Iimiled resources,il's rea|Iy dmcult t0 be fu¨y adOpted.HOweveL we'Ve used the pair ph¨OsOphy in peer code reViews tO try and address code slandards,design Of fixes,and new recruited members
s0

forth.And aIs0,when we had

joining

lhe team,we did apply pa¨programming practice
an

between the new member and hls ment0【usua¨V new member cOuld be weIl trained up,through

experienced deveIOper The
twO weeKs pair practice.

One Or

VVe co¨ectiVeIy own lhe code and try to ins pire everyone's ownership Io the whole

project.Anyone

shouId be ready lo add VaIue

or

fi×bug to any ponion of the code

at any time.Simple design makes it pOss-ble and reaIIy came t0 true. In praclice,some deveIOpers have slronger knOwledge Of certain areas,but we
are a

a

encourage deveIOpers t0 knOw mOre abOut what 0thers everyOne's Ownership tO the whOle code base.Th.s h elps

dOing and inspire
0r

lot when mana口er

team Ieader dist—bute the wOrklOad aI the beginnIng Of the iteratiOn.DeveIODers
can

easjJy pjck up the wOrk beyond his focus.and meanwhiIe

feeI∞nfident

lO

swjIch some Of their Own wOrk IO lhe c0¨ea口ue.T0 achieve better codin口slVIe

amOng the whole team,we alsO haVe nOt OnIy at code reViews but aIsO

a

strDng set 0f cOde standards we enforce
a

as

part Of the check-in

prOcess in

Our

source-contrOI system.

As advocated by XP proponents,developers shOuId integrate the cOde
as

as

Often

pOss.bIe,0nce a_fIer they fInish-mpIementatiOn Of

a

new feature Or bug一怕xing

Of course,anv code lhat's inleg阳ted into the proiect code base shouId pass aII the tests秆rst.1n GlobaI Center proiect.we do have usua|IV based
On ca

rrIed out this practice,

sOme hours'cVcIe.DeveIOper dOesnlt merge the new cOde untiI
sc ripts are

he finishes the Unit Test and SmOke tesling.Aulonlated buiId deveIOped t0 enable
easV

aIsO

bui|d and deplOVment
a

tO

the VVebsphere

SeⅣer

envIrOnment.Since itls aImost imDOss.bIe tO bu¨d

cOmprehensive automated
us

testinq sVstem,continuous inteqratiOn brings cOsts and makes Othe懵

at some risk.

The daily stand-up meeting,0ne Of the XP elements,Is aIs0 incOrpOrated intO
0ur

team.EverV daV,we take 15 tO 30 mlnutes t0 get everyOne t0口ether t0 review
even

Iheir progress and address the OutsIand issues VV色don't O仟lce r00m,since the team is arranged tO sit in frequent communIcation inside the team
0ne

gO IO sOme fOrmal
a

cube.which heIps

10t in

F0r eVery day's stand—up meeIing,each

persOn takes a cOupIe of minutes t0 talk abOut what he Or she was wOrking On that

day and the preVious day,and b rings up the issues if any.Our focus is nOt Only improVing Visibility bul als0
On

On

encOuraging cOmmunIcatiOn

bet\^feen

team abOut

members.Quick,da¨y'face—t0一face meetings keep deVeIOpers informed what Others
On

the team

are

dOIng

They keep the manager and team Ieader

infomled Of wh01s ahead and whO's behind,and heIp tO re—arrange the workload tO prOmIse the de¨very date.

4.1.2

ControlIiⅡg the Unpredictable Process—Iterations

As we stated

a

10t ea—ier,One 0f the biggesl cha¨enges we faced in GlObal Center EVen
our a

projecl

Is the changjng requirements
a

customers,the Boson business

team,OnIy haVe

general idea Of bu¨ding

CorpOrate CustOmer ReIationship

Manageme nt Tb01.1t's Very difricuIt for business peopIe tO rea¨y understand what

三!生!曼旦旦竺竺!!皇!苎!塑璺堕型竺皇堡!!皇皇竖
they need frOm sOftware in the beginning.And It's
Dur

respOnsibi|ity tO help them.
are

O舱n

we

see

that peopIe Iearn du ring the prOcess what eIements

VaIuabIe

and which

Ones

aren't.O代en the mOst vaIuabIe features arenlt al a¨Obvious unt¨
a

custOmer have had
process

chanOe tO pIay w-th the software This incremental grOwIng quickIy sketch Out and de¨ver t0
Our

is the

iteratiOn!We

cuslomer
Or

a

simpIe wOrking system containing new business VaIues,then enhance values tO syslem jt based
On

add new

cusIOmers'feedback,making

an

incremental working

4.1.2.1

Overview

Iterative deveIOpment,als0 has names

as

incrementaI development,evOIu"Onary

deveIOpment,spiral deveIOpmenl and eIc,cOnstitutes XP's key philOsOphy.The keV tO jteratIve deveIOpment is 10 freauentIV produce execulabIe verslons 0f the 秆naI system that have
a

subset

0f the requjred

features

These execulabIe

systems cOntain part Of the whOJe functiona|ities,but always try lO be failhfuI t0 the demands Of the何nal system.They shOuId tested
as a

be fuI|y integrated and

as

carefu¨y

fmaI deIive眦

An ImDOrtant question for ileratiOns is hOw 10nq iI shOuld take for

an

iteration

Different AgiIe methodolOgies giVe difrerent answers.XP suggests iteratiOns of
One Or

tw0 weeks.SCRUM suggests

a

length Of abO ut
0n

One

mDnth.CryslaI may

stretch further HOwever.I think,it rea¨y depends "whal kind of phases of

VOur 0wn circumstanOes,
eVen

project

are

you doing",and it might probably change
as an

in different

one

proiect.Take GlobaI Center

exampIe,the iteratjons adopled

di仟erent Ienqth in different deveIOpmenI phase.

1)Proof-Of-Concept Phase:At the beginning of project,when we're in the
Pr00f—Of—COncept phase,it lakes qu.te short fOr less than
One an

iteration.about used

Or even

week.

FOr Pr00f-Of-COncept
0n

purpose,,^fe
user

sImple

infraslructure and techn0109y,focused more quickly shOw customers business 90als.
a

interf旮ce,and trIed tO

big pIcture and heIp Ihem further elabOrale the

2)Active Construction Phase:After Ihe initial version of System FunctionaIity
spreadsheet was prDposed,we stepped intO taking abO ut h^『O weeks for
an an

acti,,e construction phase,

iteratiOn.New features were impIemented and
On

integrated int0 system,based

the lask p—O—ties

Frequent cIeHve ries in

such pace were needed,tO best exchange the ideas belween customers

and development team,and belter icIent讦y the project direction

3)Mature Enhancement Phase:The first phase production was successfu¨y
laughed early this yeaL enhancement phase. and then the

project

moVed into

a

more mature
One

DeveIopment iteration changed to take about
are

month.since the requirements prjOr'ty Iists for each

pretty clear nOw

We

have well.drafted is

iIeralions,1.1.1,1.1.2,1 1 3 and etc.The team
a

slead¨y mOving ahead in

sustainabIe pace

4.1.2.2 CRM 1bOIjn lte怕tions

lleratiOns enable incrementaI deIivery Of executable system.And simpIe design and fefactOring make It pOssIble and easy tO mOve from iteratiOn to iteratiOn.Let's take
a

lOOk at the foIlOwing exampIe,evO|ving lhrOugh three itera"Ons.

he

ab0Ve

cO¨abOratlOn
a

d Jagram

cOntains
a

a

vague

user

stOry,

whjch

was

elabOrated t0 be provides
acrOss users

serjes Of stOrIes.As

corpOrale CRM t001.GIOba J CenIer

the abiIjty IO search and view cuslOmer informaliOn&reIatiOnshiDs Center
acOess user

all 9eOgraphles and business lines A GIObal customer's prOf¨e page,accOrding iIs reIated
are

is granted tO

access a

priviIege.As shOwn direct
a user

in the diagram.Ihere

four poss怕Ie OperatIOns,whjch
4

can

to

三!型堕!旦竺旦堕皇!墨!堕鱼堕型竺璺塑!竺皇皇堕
search and view the cuStOmer infOrma石On: My CustOmers,
cOre

My

FavOnte

CustOmers.Customer Family and A¨Customers custOmer prO州e
page

The

informatiOn in the Card SecliOn,

cOntains:

Gene怕l InformatiOn,Business

S—Bank Primary Contacts,SSC Assets under AssetS under Management, Cuslomer

Custody,SSC

Assels Se n,iced,SSC Services by

Pr0啊tabiIity'

PrOducts /

Servicjng RegiOn.User COmments,Messages.and D0cument StOrage Areas.

4.1.2.3

Ite阳tiOn One

The fi瞄t iteratiOn aims tO provide the simpIestImpIemenlatiOn retrieVing a¨reIaled custDmer infomlatiOn from database and rendering it tO custOmef Necessary c¨ck—and—fOn^,ard work们Ow
On

the web pages is deVelOped.User Access ContrOl

Is not taken intO cOnsideration.

WOr煳Ow
and

diagram for the firsI iteratiOn is presented

as

f0IlOwed.II's pretty simple

stralgh怕rwa一.

@砌…圳协司
\y

∈.a四.cust.m洲一n hm.多
, 矿
SeIect A CustOmer

fhm"My

C¨sIOmers'

N/

@a喊k删cust…r rm-多
\y

Ge咄r鼬一ecw custo…rron-多

42

4.1.2.4 IteratiOn

h,O

The secOnd iteratiOn aims tO add values for the foIIOwing twO parts

1)Add function of"view customer pro俐e from'Customer FamiIy"',as,^,e¨as
"view cuslOmer prOf¨e frOm'My Favorite CustOme,,"v;ew custOmer prO矧e from'A¨Cuslomers"' Here,we stress the reusabI¨ty of unified interf百ce to

IOad and render cuslomer prOfiIe infOrmation.Designing uni而ed interface fOr fulure
reuse

is

0ne

Of

Our

gOOd

experiences Ieamt from GlObaI

Center

projecl
2)Add C¨ent—Cache mechanism
to

improve lhe perfbrmance while loading

custOmer name infomlatiOn tO the c¨ent.

WOr煳aw diagram

for the second itera"On is presented

as

fo|10wed

43

三!型堕旦旦竺翌!!皇!曼!堕鱼堕型坚墨塑!垒皇兰!璺
C"ent—Cache mechanism—the怕rst time
user

enters CRM Profile page,al}the

custOmer name information w川be DuIIed frOm Database tO the c¨ent browser A c¨ent cached is created for such information.sO lhat the
user

session

can re·use

it

inStead 0f retrieVing frOm Database eVery tlme.The Iater requests dramaIica¨y improVe the respOnse lime when forward to the CRM Prof¨e page. The detailed implementation is presenled f0¨Owed

as

statjc static

v4r var

customerList:Array=new Array0 customerIndex:Ar阳y;

function getData(){

if(customerList!=n uII&&vall-nuII){
welcomePageTexⅡnputeditable=true;

weIcomeP89eTextInput.setFocus(); Jelse{ EJBCustomerProxy.getCustomer0; EJBcustomerProxy.getcustomerFamil"); 】 }

4.1.2.5 Iteration Three

The secOnd iteratiOn aims lO add values for the f0110wing t,^,O parts

1)Add function of"view customer profiIe from'Customer FamiIy,",as we¨as
"view customer prO俐e from'My FavOrite CustDmer,"view custOmer profiIe from'AI|CusIOmers"'.Here,we stress the reusab…ty 0f unified interf刍ce lO IOad and render custOmer prO俞le informatiOn.Designing uni靠ed interf百ce fOr future
reuse

is

0ne

Of

Our

gOOd experiences Ieamt from G10baI

Center

project.
2)Add CIient—Cache mechanism
to improve the

pemrmance

whiIe Ioading

cusfomer name informa"On lO the cIient.

WOr蜘0w diagram

for the lhird jteration is presenIed

as

fo¨Owed

Ser,,e卜Cache mechanism—CIient—Cache mechanism OnIy imprOVe the respOnse t.me for IaIer requests sIaw.and—paInful Of
One

useL

which means every

user

has tO su仃er

a

experience

for the nrst time.

Sen,e卜Cache mechanism w川
access

cache the custOmer name informaliOn at the first attempI 10 after the sVstem

CMR page

stans.W谴h

this improve,0nly the竹rst
users

user

after the system—up

w川su仟er the pain,and a¨lhe Ialer

w川be reIieved.Eve吖user w川stilI feel

the di仟erent respOnse between the first request and the Iater Ones:howeveL the 们rst request has been drama"caIly improved.

45

兰!墅!!19竺!!!!!!t盟曼堕!!型!!!!!堡——
The deta.1ed ImpIementatiOn is presented
as

fo¨0wed

private static Str.ng customerFamilyInfo=nuIl; pubIic string getcustomerFamilyO throws Ex∞ption{

try{ if(!isProxyok()) CustomerProxystart();

if(customerFamilylⅡfo—null){
customerFamiIylnf0=MS_getCustomerFamiIy();

}
return

customerFamilyIⅡfo;

}catch(Exceptjon e){

e.printstackTrace();
throw
e:

1 )

4.1.2.6 Summary

The f0¨owing cIass diagram PrOf¨e MOdule.

presents the latesl

impIementation tO CustOmer

三!型塑!g望!!!!堡!堕鱼望!!!堡!!!!!!
』hselu州eCu8todv

ar…bD

AssetUnderS目vIcod

岛-aucTot

aI

double

5

0

abaucTmaIYTD:卧tmg=n训 'compmeTolah怕…eO ●g目AucLlst0

教溅::.岩"譬葛:...
'conwuteT01 alvaIue()

0…bj)紫8"" 熬:mT;:k蛊?絮孟::.
'comDut日T0laⅣaIue0 'gelAumLfst0

'gel舢cTmal0
'8elpWcLlnn

'口emsTm"O
'set^usLjd0

'口自他us LjnO

'ge{AumTo侧O
'%elAumu日0
'{alAumTolam

'8e{AucTotaIn

's日拽usTotdn

~elAucTo川YTD0
.selAucTo川YTD0
聚auc

'98m6Tot刊YTD0
'¥etAu¥Tol甜Y1Dn
,

~elAumToiafYTD0
'setAunlTOI剖YTDn Ur岍 /

II
CuHOmerBu…nessCa耐

a…bJ)

Cu目omerPm月eobI

akusl omerName Strlng d‰ea 0ua^e以岫slnng 龟mea 0ua^ercDuntW.SlHng

豁黜裟翟骂裂.I
'qe值u∞ 'Gg忸umn '口日Ausn

/

Pr砷tab|ny

.

每we¨ddre8s.sⅢnj

鬈黜割;
'mamn

憝:;;船?矗盅些;o

d‰m"ReImm.sⅢ叫
'qetCu甜omerNameO 'getFam时Re|atlon0 'getHe9dou8nerclty0 'getHeadouan9rCounl吖0 'geflsAdⅣe0 'anIsPub¨c0

'g目commemsO
'日nCus佃merCard0 '马ncuslome rconlac怡0

貅;端:射.热i‰
'compmeTota№Iue(1
'getMa呜lnToIa吣

..gmcus佃me¨D0
.cus¨
*e

rCaH

~mcus佃me rNameO
'日nPmm0

Ih;etProt止Imf

'getNlmmal0

~etReglDn0
'e吼舢cn
'set4"mn 'setAuen '{etC0mmentsn 's elCust0 merCard0

'gmwebAdd rees0
's elcuslomerName0 'setFamIlvRelafIonn

'getRevenueT0l叫) 'ee削a%l一吐a吣 'setNl日丌otal0
'setPr0自U 8f0
■8e1RevenueT0la…

'e吼HeadouanerC¨O 'setHeadouanercountryO

'selCustome时ontacts0
'smCustome^D0

'getPromlTOIal丫TD0 '9e俨ro自仃ot鲥YTOn

'setIsAc{№n
'sel|8PubIIcn

's日CunOme削amen
'smP ro自t0

'●selWebAddressn

'snReqlon0

l
,
nsll

\

f
/ ÷

c0I¨J,mm

{
/

母customwID.9 nng 毒commems.9【rlng
≈_UsenD.sln响 dbcm ale可n" 喃k ≈updak■me Dale 々cDmemD mg

一m驴卅
g

口r…"

Re…o"

:詈襞::menl紫
~e{createTImeO
o

-customec面tacls【】
PnmawCon伯ct8

龟a高aLlst吼Ha正18tⅧwAⅣ8vLIsl
~e饯reaLⅢ()

湖溜雾篙 :劣:‰..
'setCom№nts0
●s日tC remenmeO

靛:糍戮蕊嚣裂岫.Ⅶ
●9elcon伯cIsO

淞鄂怒郇 瓣:;:怒..
'¥g慷rea¨劬

●B目custon∞HD0 ●8目updat e可m哪 'e目User0()

~elcon伯c仃ypeO
'selcon伯cb0

●seIcontac哪peO

GC CRM ToOl Class Diag怕m

4.1.3

Summary

Overa¨,^『e present

a

pretty successfuI experience with Extreme PrOgrammIna in
our

a

gfobaf deVeIopment modef.Through achieVed the

adoption 0f Extreme Programming,we
and

project

goals by timely

delIvenes,use卜frIendly,nice—qualj_【y
lechnical

high—aVajJabilIty system,and great c0¨abOration between BOston business leam, BOstOn technicaI
team
0ur

and

China

team.We've

received

areat

appreciatiOn frOm

custOmers,and wnh the trusI grows incred№l v'Our wOrk is

mOVing mOre and mOre smOO价Iy.And Very encouragingIM GIobaI Center leam has grown up tO be
a

seIf_Organized,self-motIvated team,wilh

a

grOup Of te…fic

senior developers.Most of them were Jess experienced junjor deveIopers,but now,eVery
one

of them Is abIe to

independentb,lake

char9e of some

job,and

mentOr the new recruits wilh the.r strong expertise. M0st Of the tvveIve XP practices
are

core

are

deemed usefuI

Or

very usefuI in AgIle
are

proied execution.Most of them

easy to achieve,but
can

others

dif『icuIt to

stndIy foll铡t We beIieVe any of the pradices
ta¨or

bring yOu benef让OnIy|f yOu
ln GIobal

and adopt them to adapt your specific circumstances fu¨y adopted pfanning game, sma|f reIeases

Center

project,we

and

eVofutiona吖

iteratiOns,simpIe design and refactOring,cO¨ectiVe Ownership and etc,from which
we benefit a Iot and achieve ouf

pfoiect qoaIs.And meantime,we have some

prObIems with p阳ctices like autOmated sysIem testing,Test.行rst development, pair prOgramming and cOn"nuOus integratiOn.Due lO Ihe tight scheduIe and experiences,it's di衔cuft for mOved to
a us Our

to feam and try these new practices.After we

mature enhancement phase with mOre cOntr0IIabIe pace,we started

thinkIng abOul lhese practices and hOpe tO dig 0ut better sOIutions, Rather than the Very cOncrete practices,I think,XP's underlying ph¨OsOphy and jtS attentjon to sjmpljcjM—exjbj Jlty and

adapfiVjty

appea Js peop Je more.{t's
one

a

great

innovation for sofcware engjneering worId to place more emphasis in
on

project

people factors:amicab川ty,taIent,skiI|,and communication.Fu¨InvoIveme nt of and strong inspiration to the team
are

customers,Vigorous cuItiVation
factors to t11e啊nal
success.

a¨importa nt

三!型堕!旦竺旦!皇!墨!堕鱼堕!堕里坦!垒!璺堕
4.2 Incorporating SAC Methods into XP

Before we fu¨y sta忏ed Ihe

project,a

sma¨group of technicaI experts including

our

chief Architect was gathered togelher In sOme brainstOrming sessions,10 de竹ne the lnitiaI archilecture
can

We
a

aimed 10 d efine
use

an

Overa"basefine archilecIure.which

give the engineers

framewOrk tO

during lhe deVeIOpment's firsl iteratiDn, bounda rIes du ring laler deVeIopment impact A and high architecturaI coarse—grained

and heIp iteraIions

identify
were

and define the system the mosl

ScenariOs with

custOmer

sIgni竹cance

anaIyzed

and

cOnsOIIdated.
0n Our

high—leVeI,

archItecture was lhen cOme up wIth based IO the scena—Os with top—inlpOrtance It's fOund that when the enqineers had

experiences and understanding

n0

architectural guidance du ring the

Droiect's矗rst iteration. thev created their own visions of what the overa¨
architecture shOuld disOrganization and be.These

visions矾en
refactoring

di仟ered cOnsiderably,resuItIng in wOrk. AIthOugh the Value and

significant

importance of ove阳¨architecture guidance to XP practices was iust reaIlzed bV
Our

expe rIences

and

IntuItiOns.

itls

prOved

by

Camegie

Me||on
a

SOftware series of

Engineering

lnstitute(SEI),which

has deVeloped and promuIgated

architecture—centnc methods,staⅢng with

the S0ftware ArchitecIure AnaIysis the Architecture Tradeoff

Method(SAAM)fKazman 96】and continuinq with
AnaIysis

Method(芦汀AM)【Clements 02】,the

Quality Att—bute

Workshop(QAw)
Reviews for

【Barbacci 03】,the

An曲ute—DriVen Design(ADD)method【Bass 03】,the

Cost—Benef珏AnaIvsis Melhod(CBAM)『Kazman 02】,and Active Intermediate Desians(ARlD)【CIemenls 021. IncOrpOra"ng these architecture—centric methods intO XP

practices

alms

tO

cOmpIement XP practices by emphasizing the 0vera¨syStem structure,which is often ignOred by XP deVeIopers.But befOre IOOk deep into the detail,a bitter experIence wilhout enough arch.tectural guidance in Global Center first be Dresented here.

project

w川

4.2.1

A Lesson Thught by Experience

Now it is time to haVe

a

Iook at the problems Ihal,^fe had to face during the

project

execu雠On.hOw we wem abIe tO Ieam frOm lhOse DrobIems and how we tried tO

49

avOid

simiIar

Ones ou r

in

the future

prOgress.This

sectiOn presents

a

setback

experience in design
are

project

e×ecution.The

requirement(user story)and

its s.mpIe

giVen啊rst,with the Original implementa蜘On f0¨Owed.After descr.bing
sen,er

the GC prOduction discussed.,,nd Dresented.

tOpolOgy,the probIem wilh OriginalImpIementation is current solu"On, the reVised impIementatiOn, is

nna¨y.

the

4.2.1.1

Issue:GAB Nightly Synchronization

As

a

cOrpOratlOn

CustOmer

ReIatlonshIp

Management

100I,

GlObal
0n

Genter

characterizes itseIf by prOViding the abi¨ty tO set up and report

interacliOns

(mee"ngs)wilh

the customers.A stabIe and user4riendIy EmaII functionality is

required here,wIth the address by the name OulIook

ability

of陀lrIeVing any of lhe corporation empIoyee's email
a

Ybs,il's pretty much

GIObal Address BOOk in MIcrOsof【

The requirement is described
UseF};u寮es
j

as

the fo¨owing"ser s幻,y

盼事I!ovidi聪量he,na獭ei蓦}|||||;;¨}{}{:¨|_

…"二

GI套baE聋I;tIdre§摹BbbK lGA:Bl 圭嚆粤蠢毒ily墨e彝f霉h'tI_i罄em棚o¥垂e籀email address ■::;;. 州".
.

{¨一搬一i■



Ⅲ二

}|;j}蓑+≮≯薯誊薯;;

二一j—量?i
can

The requiremenI 100ks simpIe and slraighlforward.Per anaIysis,lhe GAB retrieved from the

be

maior

Exchange

Sen,er

via

LDAP

protoc01.Taking

into

consideratiOn the
users use

cOncu rrent

pemrmance

and the search efficiencV wh¨e multiple
a

GAB simuItaneousI y'the idea cOmes up tO keep This resOlves the pe—brmance issue in multipIe

cOpV 0f GAB in GC

database

accesses

tO Exchange

serven and meanwh¨e considerably increases response time tO end user,since

0nIy the necessary informatiOn is stOred in database the empIOyment changes in the cOrpOratiOn,

GAB keeps uDdating,due tO
Or

recruilmenls

resigns.SO

a

daemon process is inlroduced lO cOnduct lhe nighlIV GAB sVnchrOnization A s,mp,e

des由门was

brought up

as

三!剑堕!g芏!!翌堕!塑望翌!!型!!!!!堕

国一
4.2.1.2 Origina||mplementatiOn

NOw,let's

see

hOw t0 jmplement lhe GAB synchronizatiOn daemOn prOcess.Here

cOmes the Orig¨1a1

wOr醐Ow

丁he workflOw is easy t0 underStand,The daemon prOcess w¨l set ilse|f up every work
are One

a

Iimer t0 wake

hOuL tO check whether it's time 10 dO the GAB sVnchronizaIiOn

We

purposely seIect the midnIght,when there wi¨be Iess users.Sjnce there

mOre than 35,OOO GAB entrIes in tOtaI,the whOle sVnchrOnizatiOn wOrk takes minules, IncIuding lhe retrieval from Exchange Server and Ihe

abouI twenty

uDdate to Database table.

兰!型堕翌旦竺竺堕皇!量!堕鱼堕璺坚皇!!!!皇型曼
4.2.1.3 The PrObIem in PRoD Environment

The prObIem was not n§cognized untiI the cOde was depIOyed t0 w0 rId As shown in the f0IIOwing tOp0109y which was seIecled
as

run

in the real

the producliOn
sen,ers

envjronmenI for GIobal CenIer

project,there

are

two production members.

in loIaI,

and each Of them is conngured t0 hosI tw0

sen,er

GC ProductiOn Server TOpOIOgy

SingIe app¨ca"on server cIuster 0n each machine.The tOpoIogy uses verticaI scaling,which aims to pravide hIgh availabil;坶.The fa钉-over idea is accOmpl-shed by this same bOx muⅢ-member

cOncept.When

a

prOcess

becomes unava¨abIe,i.e.running out of

怕80urce,the http怕questjs a他directed away from the failed p阳cess
and toward the Ot|'er ava¨able member

When the
oC

code is deplOyed to prOduclion servers,Ihere

are

four exactIV identicaI
are

prOcess running 10 serve,which prOduces four daemOn processes which

running and wo水ing to do the same

synchronization

job.Then,the

probIem

comes.F0ur daemOn prOcesses w川wake up and t广y tO retrIeve lhe GAB almOst the same time.making the Exchange Server exhausted and respOnses much more sIow|y If the four daemon processes
are

luckv to relrieve a¨the GAB en州es

they wⅢinsert alI the entries intO the same DrOductiOn databa¥e tabIe,makIng it dup|icated four times

What's

worse.some Of lhe daemOn

processes

mi口ht

prObabfy fa¨tO re川eve the GAB ent—es for the time.Out issue exceptlon
causes

Then lime—Out

Ihe database OperatiOn 10 r0¨back,whjch w…completeJV emplV
can cause

Ihe GAB table.This

very serious productiOn probIem.since GAB

functionafity is frequenlIy used;n the prOduct.

52

兰!型!!19堕!!!!!!!生鱼堕!!!堕!!!型!
4.2.1.4 Revised Inlplemen协tion



Of GAB nightly synchronizatiOn F01lOwing is the wOrkfIOw for cur陀nt sOIutiOn daemon.

Improvements

can

be easily recognized in red First.daemon prOcess purpOseIy

waits for sOme randOm periOd 0f time,in Order t0 prOduce sOme gap time beh^,een each daemon's wake-up.SecOnd,a staIus们ag is introduced tO database table,tO schedu Je daemon
processesl

}ob.

Actua¨y,

it's

a

sjmp¨fIed
a

soIutIon

to

the

CmicaI_Section prOblem.UpOn midnight,there w川be

daemon waking up nrst,

and lhen it W|l|take respons_bi|ity to do the synchronizalion iob.To prevent the Other processes'interrupliOn,it sets the DB status竹ag tO"Updaling",which te¨s Ihe Other processes"get back tO sIeep,and w川take
care

0f the synchronIzatiOn

Iob this time"After finishing the whole job,this lucky process w…not update the
DB status门ag lO"Need tO Update"untiI the midnighl is Over,tO preVent any Of the accidentaI interruption by processes waklng up in this pe rIOd

53

The revised impIementation is wOrking we¨in production now.Il,s nOt the mOst perfbct sOIution,but it's wOrking we¨and 900d enOugh!This aIsO re们ects the 0f AgiIe sp…Is
0ne

"¨ght-but-sufFicient
a

Llghtness

is

a

means

Of

remaining

maneuverabIe.Su币ciency is That's not
a

matter of staying in the
are

game(Cockbum 2002a).

pleasant experience,but peOple

usua|Iy taught Iessons by this

waⅥWe
The

realize v惟didn't have tO paV for it If we could pay mOre attentiOn t0 the

sVstem Overa¨archilecture and get the whOIe team mOre archilecturaI guidance. Idea Of "incOrpOrating System—Architecture.Centric methOds intO XP

practIces"has been prOpOsed and we¨elabOrated by Camegie MeIlon SOf~vare EngineerIng

lnsliIule(SEl)The

adoption of this idea to GlobaI CenIer

project

w川

be presented in the fOlIOwIng section.

4.2.2

Architectural Practice in GC

This

secliOn

aims

tO

taIk

abOut

the idea

Of

integrating Architecture—Centric

methods into XP The tentative application in GIobaI Center discussed f0¨Owed.

project

is giVen and

4.2.2.1

VVhat is It A¨AbOut?

What
a

dO we mean by sOftware archItecture?Tb me the term architecture cOnVeys
cOre On

notion Of lhe
a

eIements Of the system,the pleces that which the resl muSt be bu弧

are

di币cuItt0 change.

It's

foundatfon

ln the XP deVeIopment model,the required system functIonaIIty is recorded in the form Of
user

stOrjes,at the beginning Of

deVeIOpment№ratiOn.During
use

pIanning,

the custOmer and deveIOpers delermine what funcliOnaliIy tO currenI ileraIiOn.The deVeIOpers always gels the

deVelOp for lhe

the simplest pOssible design that

job

done.In Iater iterations,deVeIopers can,should and w…refactor the
or

code,to accommodate the coming changes emerges is architecture exDerience.
a

enhancements.The

des.gn

that

prOduct Ofthe reIevant depends,

user

stOries that have been identmed.But the
On

fOr its shape and qua¨ty,

the deveIOpment team's

三!笪!苎旦旦堕!堕皇!皇!塑鱼堕g坚曼塑!!呈呈!兰
FOr the past 10 years,the Saftware Architecture TechnOlOgy lnjtia缸Ve at Carnegie Me¨0n UniversIty's
a

S0ftware

Enginee—ng

lnstitule

has

deVeloped

and

promuIgated
analysis.

series of architecture—centric methods for archilecture design and lO inlegrate System—Architecture—CenIric

One Of lhe.r studies aims

design and anaIysis methOds intO E×treme PrOgrammIng仃amewOrk.1t aims t0 include high—Ievel architectural plans tO prOvide essential big—picture infOmla"0n
and using design patterns and architecturaI solu"Ons rather than slmple design tO

handIe foreseeabIe change Tb understand
hOw architecture

cOncepts and methOds cOmpIement XP and
a

address sOme of.ts shOftcomings,Iet's take GIobal Center

lOOk at hOw they'悖appl}ed to

project.
use

SE{Architecture-Centr.c methods which is
a

the concept 0f"Qual谴y声dtr'bute Scenario",

quaIity.attr-bute.speci矗c requirement f23】that consists of six parts:

stimulus.sOurce of the st{mu|us.anifact stimula怡d,environmenti responSe and ,esp0几se,neasure.These alwaVs shapes fOcused
an 0n scenar|Os are

Very simiIar IO

use

cases,but lhey insp-res

are

quaIitV—attr_bute—specific

information. which

and

architecture.Simply put.the arch计ecture is determined by the qua¨ty the functiona¨ty.The SEl's archilectu re—centric

aItrjbute requiremenls,nOt by

methods prOvide severaI techniques for eIicitIng scenarios.The Q,¥VV,fOr example is
a

faci|itated melhDd that engages system stakeholders earIy in the Iife cycIe 10
a

discOver and eIicit the d—ving qua¨ty altributes 0f

sOfh^,are.intensive system

4.2.2.2

HOw is It App¨ed to GC

1-aking GIObaI Center desired bV custOmers quaIities e×ampIe,
are

as as

an

exampIe,in additiOn tO the feature requirements
user 0ur

part 0f the XP

stories,there

are

0ther system

impOrtant and deserved the system needs
ru

aIlentiOns in the earIy stage.F0r
t0

the

tO

be

extensible

Iet

cuslDmers

add

new

functiOna|itjes and bu8iness requ计ed
as

Jes easi|矿And the system pem)rmance wOuId be

pretly gOOd.s;nce;t's used by corpOrafiOn senjOr managers and bjg
sO

bOsses,whO w川nOt act gOOd—tempered whiIe wa…ng
reD0rts.

lOng lO retrieVe desired

Some
as

major

quaIity altr旧ute scenarios in GIobaI Center

project

are

summarized

fOlklwed.
55

三!剑!!19竺!!!!!堕曼堕!!!堡!!!型!

Major Qua¨ty
·

Attrjbute Scenarios in GC

A fancy brawse-ba∞d GUl,wh;ch can proVide rIch"ser expenences,is悖quested,and it shouId be eas¨y modj右abIe wjthout affec"ng other func百onaljties.(As a matIer of fact.Global Center system

compIeteIy

changed峙GUl嘶Ie

in

one

of its middIe iteration) development

·

A new business rule should be

easiIy added wilh-n

a

iteration span,w瞳hOut a仟ecting Other fundiOnalities


ExceIIent system pe哟rmance is requested:user shOuld get from the system within 1 0 sec in the wOrst situatiOn

a

respOnse

·

ARer put int0 production,the system shOu Jd be up-and—running stabIe f.r

24×7.(GIobaf Center

sen,es

for

users

from afI oVef the world)

Tb achIeVe these requirements,XP enlphasizes incremenlaI design and reIies the archjtect's experjence a几d knOwledge tO create the
on

on

desjgn.

The

Att rIbule—DriVen empIOy In the tieL
One 0r

Design(ADD)method provides

more deta¨s

how we'I|need to

mOre architectura|tactics

case

Of GUI,besides adopting

a

Rich—C¨ent s0IutiOn fOr lhe presentation to sepafate the presentatIon tier

the

easy-mod讯ability

requestS

impIementatiOn,in Order not to a仟ect Other functiOna Jjties
as

It's the same situaIjon

easily add new business rules without affecting Other functiOnalIties.Here.the
an

relevant architecturaI tadics incIude LOca¨ze Changes and Use

JnIermedjarV

The L0ca¨ze Changes tactic suggests thal we shOuId 10caIize lhe cIient,business rules and database}ntO cOmpOnents.The Use
an

Intermediarv tact;c suggests

that we shouId sepa rate lhese cOmponents t0 insuIate them frOm each 0ther's pOtentjaJ changes.COnsjde rjng the brOwse卜based c"ent,a

Web"er

js requested

to provide Intemet functionaIIty to receive requests from and send responses Io cIienls in preSentalion lier.A J2EE fou卜Iier brOwse卜se n,er mOdel wOuld emerge frOm applying the LOcaIize Changes tactic;this architecture aIlOcates the client, ,^,eb,database,anc|busjness rules fO fhejr Own tiers,JOcalizjng the eff爸cfs 0f any changes t0
a

single tier.

To achieVe the system exce¨enI

pe怖rmance

90aIs and high-avalIabi|itM we need

tO empIOy Other architectural tadics,Iike the IntroduGe COncurrency and lnc『ease AVailable ResOurOes tactics.Then we start 10 think abOut cluste ring and worklOad management,which aims to spread muItiple requests for wOrk
Over

mu川ple

resources.WOrk

IOad management is als0
an

a

prOcedure for improv|n口perfbrmance It provides failover when
sen,ers are sen,ers 0n

scaIabi|IM and reIiabi|lty Df

app¨ca"on

nOt ava¨able.It is mOsl e仟ective when used in sVstems that cOnIain multipIe add
an

machines.WIth
add…0naI

muItipIe cluslering
a

servers

wOrking lOgether,we need lO which empIOVs
a resOurce

compOnent,
as

10ad balancel
0r

arbitration tactic such
l hls

Fixed—PriOrity Schedu|ing

First.1n Firsl—Out Schedu|inq

cOmpOnent w川ensure that the prOcessing 10ad is distribuled amOna the
resOurces

system's

accOrdjng tO

a

chOsen scheduIjng p0IicⅥ

A candjdate OVera¨architecture is presented in the folIOwing figure,from lhe de pIoyment view.

Client Tie.

Web

Tie'

Business Logic Tier.

EIS Tier

PRoDl

\一/


The cIient tler encOmpasses VariOus client types,such appIets
Or

as

brOwsers, reside bOth transIaled ;nt0
a

sland—aIOne appIication cIIents These c¨ents

can

within and Outside Of the enterp rIse们rewa¨.User acliOns inlo
serVer

are

requesls

and the

server

respOnses

are

transIaled

user—readable format.


The web tler embraces VVeb cOmpOnents,either JSP
are

Or se

n,lets,which

deplOyed

0n

Web

cOntainerS.They

access

dala and services frOm
can

Other liers,handIe

user

requests and screen伺0w.and

als0 contrOI

三生型!璺旦旦型翌!!皇竺!!Y鱼!苎型!苎塑!垒!兰堡
user

InteractIOn,presen缸ng the feturned lnfOrmation back to the client
access



Business Iogic tier:Business IOgic componenls and business fules,cOnsisting Of enterprise cOntainers.丁here
are

enterp—se data
On

beans,deplOyed

EJB

three kinds Of enlerprise beans:sessiOn beans.

entity beans.and message—driVen beans.


The Enterprise InformatIon Systems tier is cOmmOnly referred lO

as

the

back—end tier:examples incIude database manager systems,majnframe transac"0n processing and Other legacy systems The production archileclure 0f GlObaI CenIer is mOre cOmpIex in IBM TbpO J09弘 like guarantee high high—IeVeI haVing mu…pIe

Websphere
server

seMr

members in each

prOductiOn

tO

scaIabi|Ity

and reIIabiIIty But the above flgure contains the overaII guidance, which wOuld definitely avOid the bitter

architecturaI

exDe—enoe we had.

4.2.3

Summary

The agiIe softvl,are deVeIOpment paradigm and pIan·d—Ven approaches each haVe their strengths and shOrtcOmings, The former emphasizes rapid, 啊exible

deveIopment,whiIe

the Iatter emphasjzes
vOu can use

proiect and process

infraslructure.

Recent wOrk shOws haw

arch计ecture吒entric ac珏vities tO bafance

agiIe and plan—d rjven apprOaches,e×plOiling thejr sln3ngths while cOmpensa石ng fOr their weaknesses. In situatlons where rapidly and is

requirements change
can

an

agile approach
a

warranted,architecturaI cOncepts fhat w川meet its

enhance the process Of designing
a

system

requ.remenls.We
are as

beIieve there is
On

rOle for

a

broad starting point

archjteclure.Such things you'llinteract wjth the the web
sen,en

sIating earfy need

hOw tO layer the app JicaliDn,how approach to
use

daIabase(_f you

one),what

to handle

As

Our

knO^Ⅳledge Of patterns grOws,we shOuld haVe
use

a

reasonable first take at

hOw lO

them

HOweVer,the key d{仟erence is that these earIy archjtectu阳I

decisiOns aren't expected to be set in stone:0r rather the team knOws that they may
err

in the.r early decisiOns,and shOuld haVe the cOurage to fix them

Advice frDm Martin

what the Iikely archltecture begin by assessing ahead and use a is.If VOu see a Iarge amOunt Of data with multipIe users,90 in a dOmaIn mDdeI· database from day 0ne.If you see complex business IOgic,put in doubl err on the sIde ot However in deference to the gods of,rAGNI,when

Fowler【6】js to

三型!塑型坐!!!盟旦型壁』里坠——————一
as soon as

simpIicity.AIso be ready to simpI阡y your architecture
0f the arch-lecture Isn't add¨19

you

see

that part

anything.

Chapter 5.Summary and Future 1V~brk

5.1 Summa呵

Overa|1.we.ve found it very fruitfuI to tailored—adopt XP in GIobaI Center Ttle es"mabOn of hc^^,muc:h we
can

pn.jecI



get aone in

a

giVen itera荫on has been
an

extremeIy accurate.NearIy a¨the priority一¨sts we sel Out tO cOde du rIng iteratiOn
● are

finished that iteration. made quick.

A¨the priority—Iists ha,,e substantiaI and demonstrabIe progress dunna that iIeratiOn. Every month
are

We

make

cDnsistent,

demOnst阳bIe prDgress.丁he resuIts


simpIe:we prOduce.

C0mmunicatlon within the team and tO the custOmers and spOnsOrs has vastly improVed.The pIa九ning meet}ng gets eVeryOne
on

the same page

and cIea r|V articulates iteraIiOn gOals tO bOth Ihe team and the c|ient and
SDOnSOrS.



The custOmer gets lO activeIy participate in what gels done.The custOmer
can

change t11eir minds and we stllI prOduce.



Since reaIistic expectaliOns Of both the leam members and the app¨catIOn
are

set each

One 0r

twO weeks,lhere isn.t any anxiety about assessing is.

where the
·

project really

0ur

project

approach ltself undergoes lteratiVe process improVement The

whoIe team initIaIes these improVements ●丁音am mOraIe has skyrOcketed since we们rst adopted this prOcess. One of the biggest benefits we.ve from this

seen

prDject

is how we¨we'Ve grDwn

seniOr developers.…s been noticeable that most Ieam members whO were Junlor deveIOper5
a

year a90

are

now slrO几g Iechnical

leads.We att—bule

lhis tO the facl

thal every deveIOper is abIe tO independently lake respOnsibIIity frOm the Very Df the app The begInning and that we encourage rOtatjOn between di何erenI parts rotatIon has sOme Overhead and fruslraliOns,pamcuIarly under the Very tIght deIiverv sGhedule.but the resuIt is thal we now haVe severaI technIcal leaders whO
can

Iead develop几1ent,which makes lhe technjcal|eadership Of the pr0Ject

much mOre stab|e tailOred adOption,we achieved
a

ThrOugh E)(treme

0ur

a

pretty successful experIence wIth de¨VerIes,

Prog阳mming in

gIObal

develOpment mOdeI,by timeIy

user—friendly.nice—qua¨ty and high—aVailabi|ity system,and great cO¨abOra"On between BOstOn business team.BOston technicaf team and China technicaIteam.

We've

received great appreciation frOm
Our

Our

cuslomers,and w.th the trust grows

i九credIbI y1

wOrk is moving mOre and mOre smOOthly And Very encOu阳glnglM
a

GIObal Cenler team has grOwn up tO be MOsI Of the tweIve XP

seI仁Organized,seIf-mOtIvated team deemed usefuI Very useful in Agile
are

cOre

practIces
are

are

Or

pr叫ect
strictIy

executio九

Most of lhem

easy to achieVe,but others
can

difncult to

f0¨Ow.We

be¨eve any Of the practices

bring you benefit OnIy if yOu

tai|0r and adopt them t0 adapt yOur specific circumstances. As we leam during

pr叫ect

execution,the agiIe so代ware deVeIopment paradigm

and plan-driven apprOaches each have their slrengths and shortcOmings.The former emphasizes rapid,fIex.bIe deveIOpment,whiIe infrastructure. IncorporatIng the Iatter emphasizes

proiect

and

process

System—Arch.tecture—Cen川c

melhods intO XP enIightens the way t0 balance ag¨e and plan—driVen apprOaches, explOiting their strengths whiIe compensa"ng for their weaknesses. Rather than lhe very cOncrete practices,I think,XPls unde—ying phIIOsophy and its attention to simp¨city,fIexIbiIity and

adaptiVI"appeaIs

people more

lt's
one

a

great

innovation for sof【ware engineering world to place more emphasis in
on

project

peopIe factors:amicabilItyl IaIent,skiI|'and communicalion.Fu¨invoIvement of
are

customers,VigOrOus cultiVatiOn and slrong Insp.ratiOn tO the team factOrs t0 the finaI
success

a¨impOrtant

5.2 Future

W0rk
a

In this thesis,we present iI's

preIty successfuI experience in XP practice.HoweVer,
our

just

a

900d staⅢng:lhere is sI…a long way to go to conlinue

research and

Draclice. As we dIscussed ear¨er,we'Ve tried and benefited frOm some Of the XP gOOd practices,whiIe st川ha vJng prOblem with

0thers.We

fulIy adopted pIanning game,

三塑型!璺旦星竺!!!宝堡!堕璺堕型!璺堕!垒呈呈堕
smaH releases and evOIutlOnary itefatiOns, s|mpIe
a

de¥ign

and

refactOrina,
our

co¨ective ownership and etc,from which we bene师t gOaIs system

Iol and achieve

proiect

And meantime.we have some probIems wilh tes"ng,Tbst-f-rst develOpment, pair
Our

practices Iike autOmated and continuOus
us

prDg阳mming

InIegration.Due tO the Iight scheduIe and Ieam and try these new practices

experiences,il's difficuJt for
a

tO

Since we mOved tO

mature enhancement

phase w_th more contrO¨abIe pace,we have started thinking abOul lhese practices and hope 10 dig 0ut beHer s0IutiOns ImprOving prOduct quality and XP claims to provide high

pe向rmance

is always

One

of

our

greatest missiOns

quaIIty

via practices like paIr programming.automated

system testing,Tbst—first develOpment etc,hcfweveL we didn'l fu¨y adOpted these practices due t0 the tight scheduIe.CurrentIy,sOme conlpensatiOn praclices,such
as

peer cOde review,fuI|y invOlving business team for intensive les"ng and

s0 On,

are

pe rfbrmed tO ensure quaIil矿HOweVer,we neVer stop seeking and trying better
on

solutions.1n the futufe resea陀h,we w|II focus eValuate
on

1)further e×periment and
anaIyze how the testing for software

XP lesling

practices;2)systematicaI|y projeccs

practices heIp specmca||y to improve the product product

qua||ty:3)seek

quafjty

assessment methods in XP

and refate product

quality

factOrs tO producI qua¨ty meⅢcs wjth resped tO XP practices As we'Ve found,XP,as welf plan—driVen approaches,has itS own strengths and

as

shOrtcomings.The idea IO incOrpOrale System—Architecture—Centric methods intO XP is just
a

good

slarting.We

neVer

stop expIoitIng other apprDaches'strenglhs lo

compensate XP's weaknesses,and u…maIeIy develop lhe most suitable wOrking model for In
ouf

speci矗c

pn.jects. growing.We

a

cOncIusiOn,we w…neVer slOp Ieaming,and we w…never stop
Our

belleVe it's the key tO

success!

;!剑幽9塑堂!业曼!型!坐!!型!
Reference

【1】C

Larman and V R BasiIi,"IteraliVe and incrementaI deVelopment:A brief

history'"IEEE SofCwa re,vol 20,pp 47—56,2003

【2]L¨wi||iams

and

A

Cockbum,"AgiIe

software

deVeIopmenl:lt's 39—43.2003

aboul

feedback and change,"IEEE Soaware,vof 20,pp

【3】K.Beck.E)cIreme
AddisOn

programmIng expbined:Embrace change.Reading.MA:

WesIey

Longman,Inc,2000 Sofl'l^rare

[4]A.Cockburn,Agile

DdVelopment,Addison

VVesIey Longman

Reading,Mass.,2001.

【锄J

High8mith and A Cockbum,4Agile

S矾ware

Developmenl:The Business

of InnovatiOn,"COmputer,Sept.2001,pp.120-122

16】Beck,K,Beedle,M,,Van

Be几nekum,A.,Cockbum.A.,Cunnjn9ham.W.
and Thomas,D

Fowler,M,GrennIng,J,HIghsmith,J..Hunt,A.,Je仟ries,R.,Kem,J,Marick,
B..Manin,R.,Me||Or.S.Schwaber,K,Suthe rland,J

(200').

Manifesto

for

AgiIe

Software

OeVeIopment

(22 3-2002)

b!垃:型△gi!呈丛垦丑i!呈墨地:Q[g 【7】Cockbum,A.(2002a)Agile 【8]MⅢel
G Software DeVelopment,Boston

Addison—WesIey

G(2001).The cha怕cleristics

of Agile So什ware Processes.The Languages and sy8Iems

39'"Intem atlonaI Conference of

ObjecbOriented

(T00LS 39),Santa Ba rba r8,CA

【9】Schwabe r,K.(1995)scrum
on

DeVelopment Process

00PSLA.95\~b rkshop

Business

Object

Design and lmpIementation sp ringe卜Verlag.

[10I

Schwaber,K

and BeedIe,M

(2002)AgiIe

So什wa re Development

w№

Scrum.Upper Saddle River,NJ,Prentioe—Ha¨.

【1 1】

PalmeL

S

R

and

FelsIng,

J

M

(2002).A

P怕cllcal

Guide

to

Feature·Driven DeveIOpment Upper SaddIe RiveL NJ.Prentice—Ha¨.

[1 2】 [12】

Kruchten,P(1 996) Kruchten,P(1 996)

A Ratlonal A Ratlonal

DeveIopment Process DeveIopment Process

CrosstaIk 9(7): CrosstaIk 9(7):

11—16, P

【1 3】

Kruchten.

(2000)

The

RationaI

Uni们ed

Process:an

ln"oduction

AddisOn-Wesley. 【14】S过apIeton,J,(1997).Dynamic systems methOd in practice.AddisOn WesIey. 【151 HighsmIth,J.A.(2000).AdaptiVe
deVelopment method—The

Sofh^fare DeVelopment:A Co¨aboratiVe House

Approach lo PubIishing.

Managing CompIex Systems.New York,NY:Dorset

【16】

O'ReiI|y,T(1999).Lessons

from Open Source So竹ware DeVelopment

Communicalions of the ACM VoI 42(No

4):32—37. J.Warsta,Agile
software

【1 7】

P Abrahamsson,O

Salo,J.Ronkainen,and Review and AnaIysis.

development methOds:

EspOO, FinIand:1-echn.(:aI

Research Centre 0f Finland,VTT PubIIcatiOns 478, An Introduction to Extreme Source

【18】

Programming,

O'Re-IIy

open

COnventiOn http:/^^n^n^f.Iinuxdevcenter cOm,pub,a门inux,2001,05,04,×p—intr0,hlml

【19】

R.L.

Nord,

J.E

1.0mayko,

and

R.Wojcik,

Integrating

Sof【ware

Architecture—Centflc Methods into E)(treme

Programming(XP),tech,report

CMU,SEI一2004一TN一036,SOf【ware Eng.Inst.,Camegie Mellon UniV 2004: vn^,w sei.cmu.edu/pub¨catiOns,dOcuments/04 repOrts,04ln036.htmI.

【20】

M.R.Barbacci et a1.,Qua¨ty Attribule repOrt

Workshops(QA,~s),3rd

ed.,tech

CMU,SEI一2003一TR·016,SOMare

Eng.1nst.,Carnegie Me¨0n UniⅥ

2003:,『lM^Ⅳ.sei cmu.edu/pub¨cations,dOcuments,03.reports,03tr01 6 html

【211

L¨Bass,P CIements,and R.Kazman,Software Architecture in PractIce

2nd ed,,AddisOnJ^/色sIeyl 2003.

【22】

P.CIements,R.Kazman,and M Kle{n,EValuating

Sof啪are

Architectures

Methods and Case Studies,AddisOnJ^/esIey,2002.

【23】

Bass,L¨:Clements.P:&Kazman,R.Software Architecture in Practice EditiOn. BOslon, MA:

Second

AddisOn—WesIey,

2003

http:,,www.sei.cmu

edu,pub|ications,books,enginee rIng,sw—arch-practice—se

cOnd—ed…0n.htm

【24】

03】ClemenIs,P:Bachmann,F.:Bass,L:GarIan,D:IVers,J: LittIe,R.:NOrd.R.:&Stafford,J.DOcumenting SOfMare Archilectures:Views Beyond.BOston,MA:AddisOnjWesley,2003.

Clements

and

[25】

M.FowIer,"Is Design Dead?"ExIreme Programming Explained,G Succi

and M.Marchesi,eds.,AddisOn

WesIey

LOngman,Reading,Mass.,2001.

[26】

Boehm,B

(2002).Get

Ready

For The

AgiIe

Methods,With

Care

Computer

35(1):64_69 (2001).LaunchIng
1 8: Rapid 3—9. Maurer, deVeIOpment XP at F. and
a

【27】

Grenning.J Soflware

Process-Inte九siVe MarteI, S.

Company. E)(treme IEEE

IEEE

(2002a).

prOgramming:

fOr

Web—based

applicatlons.

Intemet Computing

6(1):86—90.
Programming from
a

【28】

M.

PauIk,"E)(treme

CMM Perspeclive,"IEEE

SO代Ware,NOV.一Dec.2001.pp.19—26.

三!生'!19竺!!!!!!!堕鱼堕!!!堡!!!!堕

AcknOwIedgement

Zhou BO,for FirSt,1 wOuld¨ke tO express my deep gratitude tO my mentOr,Prof his wonderful guidance,great inspiratiOn and cOntinuOus

encouragement.WithOul

hIm.it wOuId have been impOss岫Ie tO cOmpIete this thesis Second,1 wOuId give my great thankfulness tO PrOf Li Shanping,Zen,and JOhn, who are the TC and Boslon managers of GlobaI Center project.And much more than this,they are all great menlors,as we¨as friends,teachi九g me sO much In my da¨y

project
so

work and my¨fe.

1 am also

grateful to Prof He

ZhIjun,Prof.Yang
me lhis

Xiaohu and Prof.Sun JianIing.

Thank you al|so much for giving SSZUTC, and furthermOre

me this opportunity to exciting

join
and

our

laboratory

Ofre rIng

chaIlengeable

env-ronme nt and giving me mOmentar"y directiOn. want to acknowIedge the whole GIobaI Center team,Ma

Xiang(TL),Yang We
are a

L』pei

(声门rL),Li Chunjin,xu

Jun and other new members I rea¨y appreciate your great great

job

and every minute we spent Iearning and working togetheL

and cOmments tO team!Specia¨y thank yOu,Lipei,for a¨your heIpful suggestions my thesis! and my bOyfrIend Xu Lei, Fina¨y,the speciaI gratitude is reserved fOr my parents who have always been greatIy encouraging and supporting me to pursue my dreams.

Ping ZHANG Mayl2,2006

Extreme Programming Practice and Reflection in Global Center Project
作者: 学位授予单位: 张平 浙江大学

参考文献(30条) 1.Reference 2.C Larman.V R Basili Iterative and incremental development:A brief history 2003 3.L Williams.A Cockburn Agile software development:It's about feedback and change 2003 4.K Beck Extreme programming explained:Embrace change 2000 5.A Cockburn Agile Software Development 2001 6.J Highsmith.A Cockburn Agile Software Development:The Business of Innovation 2001 7.Beck K.Beedle M.van Bennekum A. Cockburn,A.,Cunningham,W.,Fowler,M.,Grenning,J.,Highsmith,J.,Hunt,A.,Jeffries,R.,Kern,J.,Marick,B.,M artin,R.,Melior,S.,Schwaber,K.,Sutherland,J.and Thomas,D Manifesto for Agile Software Development 2002 8.Cockburn A Agile Software Development 2002 9.Miller G G The Characteristics of Agile Software Processes 2001 10.Schwaber K Scrum Development Process 1995 11.Schwaber K.Beedle M Agile Software Development with Scrum 2002 12.Palmer S R.Felsing J M A Practical Guide to Feature-Driven Development 2002 13.Kruchten P A Rational Development Process 1996(07) 14.Kruchten P The Rational Unified Process:an Introduction 2000 15.Stapleton J Dynamic systems development method - The method in practice 1997 16.Highsmith J A Adaptive Software Development:A Collaborative Approach to Managing Complex Systems 2000 17.O'Reilly T Lessons from Open Source Software Development 1999(04) 18.P Abrahamsson.O Salo.J Ronkainen.J.Warsta Agile software development methods:Review and Analysis 19.An Introduction to Extreme Programming 20.R L Nord.J E Tomayko.R Wojcik Integrating Software Architecture-Centric Methods into Extreme Programming (XP),tech.[ report CMU/SEI-2004-TN- 036,Software Eng.Inst.,Carnegie Mellon Univ] 2004 21.M R Barbacci Quality Attribute Workshops (QAWs)[ tech.report CMU/SEI-2003-TR-016,Software Eng.Inst.,Carnegie Mellon Univ.,] 2003 22.L Bass.P Clements.R Kazman Software Architecture in Practice 2003 23.P Clements.R Kazman.M Klein Evaluating Software Architectures:Methods and Case Studies 2002 24.Bass L.Clements P.Kazman R Software Architecture in Practice 2003 25.Clements P.Bachmann F.Bass L.Garlan,D.; Ivers,J; Little,R.; Nord,R.; & Stafford,J Documenting Software Architectures:Views and Beyond 2003 26.M Fowler Is Design Dead 2001

27.Boehm B Get Ready For The Agile Methods,With Care 2002(01) 28.Grenning J Launching XP at a Process-Intensive Company 2001 29.Maurer F.Martel S Extreme programming:Rapid development for Web-based applications 2002(01) 30.M Paulk Extreme Programming from a CMM Perspective 2001

相似文献(10条) 1.学位论文 高昂 敏捷开发思想指导下的手机应用软件开发 2007
随着移动通讯技术的不断发展,具有彩色液晶屏幕并支持BREW程序的手机已经出现并且开始被人们所认识和接受,这样使用BREW技术开发的手机增 值应用服务也将会越来越多.由于目前在国内开发手机上的BREW应用尚处于刚刚开始的阶段,相关的技术资料和开发经验都比较欠缺,还需要借鉴日本 和韩国在开发手机上的BREW应用方面的成熟经验.此外,传统软件开发模型已不能适应手机开发的需要. 自上个世纪60年代以来,软件工程思想逐渐形成并发展,出现了很多软件开发模型与方法.而在90年代以后又推出的CMM,更是对软件开发的过程管 理提出了确切的衡量指标.但这些成就依然没有能很好的解决项目超期,成本超预算的问题.针对这些问题,一批业界专家一起概括出了一些可以让软 件开发团队具有快速工作,响应变化能力的价值观和原则.他们提出的各种方法统称为敏捷方法,由一系列敏捷观点构成,强调软件开发中人与人之间 的沟通,通过交流适应需求的变化,达到用户满意的效果.相对于重视过程的CMM等重量级开发过程,敏捷方法更适合于手机项目的开发. 本文介绍了手机应用软件开发的过程,以及其中使用的面向对象的思想和UML工具.着重分析了在软件的改进和升级过程中,运用软件工程领域的新 兴方法——敏捷开发方法,达到完善需求分析,改进开发过程,提高软件项目管理水平的目的.在需求分析和设计过程中运用了面向对象的需求分析和 统一建模语言(UML)实现,提出了针对传统手机应用软件开发过程使用的数据流图和业务流图的改进.最后通过实践和总结,针对小组承担的手机应用软 件开发,提出较为科学的过程管理模型.

2.会议论文 王昂.史有群.郑晓强.钟伟 中小型CRM系统的敏捷开发实践 2007
敏捷软件开发提出了解决软件适应变化的基本原则与实践方法.通过介绍敏捷软件开发的特点及其在CRM系统项目实际开发中的成功实践,探讨敏捷 开发中的迭代与极限编程对于中小型需求易变的软件开发项目的实际运用.

3.学位论文 戴哲明 基于J2EE架构敏捷开发的实践和研究 2008
对于基于J2EE架构的Web项目,传统的软件开发方式以"明确需求"为核心,从需求分析,软件设计到系统实现,再进行集成和测试.这样,系统集 成进行得比较晚,集成的时间周期比较长,集成时发现的缺陷也比较多.通常项目团队在软件部署之前才发布版本,而用户只有在部署之后才能看到真 正的系统,因此,用户反馈的时候可能会提出许多修改意见,甚至包括流程方面的问题,这些问题可能会影响到整个系统的架构设计.如果开发团队对 单元测试不够重视,或者缺乏有效的回归测试方法,那么对于用户提交的Bug,开发人员很难在短时间内进行定位,修改的周期也会比较长.敏捷软件开 发方法可以很好地解决以上这些问题.持续集成可以解决系统集成时周期长,缺陷多的问题;小型发布可以及时获得用户的反馈;测试驱动开发可以解 决Bug修改周期长的问题. 本文对基于J2EE架构的敏捷开发进行了实践和研究,首先介绍了持续集成,测试驱动开发,代码检验和配置管理等敏捷开发相关的技术,以及应用 非常普遍的Web应用框架和持久化框架;然后在熟练地使用各种开源软件工具的基础上对持续集成工具CruiseControl的设计与实现进行了剖析,并提出 了一个将现有的多个开源软件工具集成在一起用于敏捷开发的平台;接着开始搭建该平台,并在搭建过程中解决了一些相关问题,包括持续集成的效率 问题,代码规范的强制性问题;在介绍了文件资料管理系统项目的背景和概况之后,我们就基于敏捷开发平台并结合文件资料管理系统项目进行了实际 的Web应用开发,对实际开发过程中的经验教训进行总结,最后指出了还需要进一步研究和解决的问题.

4.学位论文 朱杉 敏捷开发中软件测试改进的实现 2009
近年来,为了快速应对复杂多变的软件需求,越来越多的软件团队将敏捷开发方法应用于软件开发的实践当中.由于软件测试是软件质量保证的基 石,因此,在敏捷过程中,软件测试的改进逐渐得到更多的关注. 本文以跨平台桌面办公软件套件项目中的产品测试工作为基础,结合项目特色和敏捷软件测试思想,阐述了以Scrum敏捷开发方法为主,进行短周期 迭代开发的软件项目中,软件测试的改进目标,改进策略及具体实现.测试改进的目标是缩短测试时间,提高测试中对过程和状态的监控能力,确保测 试覆盖率,测试有效性和产品质量. 软件测试改进工作从测试组织,测试方法和测试管理三个方面着手:在测试的组织上,以QE Function Owner角色设置为基础,改进了人员的组织方 式,缩短沟通路径,提高了沟通效率;在测试方法选择上,利用开源的自动化测试框架STAF(Software Testing Automation Framework)实现了每日构 建下BVT和冒烟测试的测试自动化,节约了人力资源;在测试管理上,于缺陷管理中应用软件工程的成熟理论,引入建立在过程基础上的正交缺陷分类 (ODC)方法,通过相关分析评估方法,发现项目过程中存在的问题,使项目团队能针对问题及时地采取措施,为持续的改进提供了保障,同时也为团队 工作,产品质量和用户满意度的评估提供了准确可靠的数据依据. 本文所论述的软件测试改进已应用于该项目多个周期的测试实践中,取得了可度量的良好效果.

5.期刊论文 邱强 敏捷开发在软件开发中的应用 -科技资讯2009,""(22)
敏捷开发是一种以人为核心,选代,循序渐进的开发方法.它采用项目拆分的手段,从旧的"瀑布式"开发转变为"并列式"开发,形成了"敏捷开发"所倡 导的精干而灵活的开发方式,并将开发阶段分成若干周期,进行"冲刺",从而有效提高软件工程项目团队的工作效率,提高了交付产品的质量.敏捷开发能使 英雄贴项目团队在更快地获取投资回报的同时,构建出更高质量的系统,从而在软件开发过程中有着较高的应用价值.

6.学位论文 汪伟 透明水晶开发方法在定制软件开发中的应用研究 2007
从2001年敏捷联盟宣言(The Manifesto of the Agile Alliance)提出以来,宣言受到广泛的响应,并展开了进一步的研究,随后产生了一系列的敏 捷方法,如:极限编程XP(Extreme Programming),水晶系列方法(Crystal Method),功能驱动开发FDD(Feature-Driven Develooment),Scrum等.这些 方法给传统的软件开发带来了巨大的影响,并且得到了广泛的应用.它们虽然在做法上各有各的不同,但是本质上都是敏捷的. 定制软件开发是指根据客户的具体情况,具体要求,设计软件系统,提供相应的服务.定制软件开发有其自身的特点,传统瀑布模型在定制软件的 开发中遇到了很大的挑战,出现了许多问题,如需求得不到满足,进度延期等问题.而敏捷方法正是针对这些问题提出的,很适合定制软件开发.我国 软件行业有其自身的特点,如规模小,制度不健全等.本文通过分析我国定制软件开发的特点认为,在众多的敏捷方法中水晶系列方法比较适合我国软 件行业目前的现状.本文结合中国网络通信集团公司网上营业厅项目,阐述了透明水晶方法在定制软件开发中的应用研究.主要对以下几个方面的问题 进行了探讨: (1)介绍敏捷开发的内涵,原则,阐述了目前主要的敏捷开发方法的特点,结合我国软件行业的现状,对各种敏捷方法的优缺点作简要分析.在众多 的软件开发方法中找出能很好的适用于我国软件行业的方法一水晶系列方法. (2)分析我国定制软件开发的特点,论述了定制软件开发使用敏捷开发的必要性和优势.结合定制软件开发的特点和水晶系列方法,提出定制软件开 发应该根据项目自身的情况采用与之相适应的水晶方法. (3)以网通集团网上营业厅项目为例,说明在定制软件的开发中如何采用Crystal方法.包括人员组织,项目开发两个方面.针对目前在定制软件开 发中的问题,重点阐述了在项目开发中的增量开发,需求控制和进度控制. (4)在文章结尾,根据Crystal方法的特点,对定制软件如何采用Crystal方法做了总结,并总结了Crystal方法的优点与其局限性.并对在本文研究 中还存在需要改进的地方进行了探讨.这样的工作,对于想要继续尝试研究和Crystal方法的人,或许有一些参考意义.

7.学位论文 范洪涛 敏捷软件开发应用研究 2009
21世纪是高度依赖计算机系统的信息时代,软件产品日益增加的同时,软件开发也面临着新的挑战:一方面是需求的多样性,个性化和不断变化 ,另一方面则是来自同行激烈的市场竞争.这就要求软件开发人员能够以更灵活的手段来应对不断变化的需求,用更短的时间和更低廉的代价将系统推 向市场.显然,传统的软件工程理论越来越不适用于现代软件开发的要求,在这种背景下,敏捷软件开发应运而生.它给出一些相关的价值观,原则和 实践,以较小的代价来获得更好的效果,但也存在着一些不足,如在具体的实践上缺少进一步的指导性和可操作性,缺乏全过程的管理等. 本文在分析敏捷软件开发基本理论,基本原则,开发模型和相关开发工具的基础上,以新疆空管安全信息系统的研发为例,对敏捷开发方法的应用 进行研究.论文深入分析了系统建设目标,业务流程,建立了基本的系统功能模型,描述了系统的非功能需求.随后以需求分析为基础,遵循敏捷开发 的基本原理,通过三次迭代开发的详细论述,比较完整地展现了敏捷软件开发的思想,方法和开发过程.第一次迭代主要以系统架构搭建为目标,以关 键业务和关键非功能需求的设计为对象,寻求合适的解决方案,并形成一个用户可以使用的简单版本;后续迭代通过不断的收集用户反馈意见,不断完 善,扩展系统功能并发布新的版本,逐步形成用户最终认可的软件系统. 论文通过对系统需求变化和设计演化过程的描述,集中体现了敏捷软件开发应对变化需求的优势,证明了敏捷软件开发在提高软件质量和开发效率 的有效性.

8.会议论文 付晓江.鞠恒 精确软件开发 2006
精确开发的目标是保质按时地完成软件项目的开发.在G-YNS(丰田全球版整车物流系统)中,我们尝试使用一种高效,准确的开发方法来指导整个开 发过程,我们希望能够全面地记录开发生命周期各个阶段的详细内容.精确开发试图汲取RUP和敏捷开发的优点并克服其弱点,可以认为精确开发更像是一 种轻量级的RUP开发框架.精确软件开发从RUP入手,符合企业开发实际.

9.学位论文 刘绍华 面向服务协作的模型驱动敏捷开发技术研究 2006
随着Web服务技术和面向服务的体系结构(SOA)的发展,运行时互操作已经不再是一个难题.但是,这就要求软件开发必须从使用本地丰富的内部应 用资源向联接外部广泛分布的服务资源过渡.这一转变却正面临一些新的困难,新时期的软件开发必须回答如下三个问题:如何使包装为Web服务的软件 资源协同工作,如何在技术演进的过程中保持平台的中立性,如何在当前动荡的Internet时代适应需求的变化?通过与这三个问题相对照,不难发现:传 统的软件开发方法难以重用和协同软件资源,难以保持平台的中立性,也难以满足变化的需求.因此,迫切需要一种能够克服这些困难的新方法. 本文以服务协作作为解决以上三个问题的切入点和突破口;从模型驱动方法入手,定义具有形式化语义的服务协作模型,并实现服务协作模型的可 视化建模;同时借鉴敏捷方法的原则和做法,以可执行服务协作模型为中心,使得面向服务协作的开发,部署和执行过程达到快速,轻巧,灵活的效果 ;最终形成了完整的面向服务协作的模型驱动敏捷开发技术框架,简称SOMA.通过发挥服务协作,模型驱动,敏捷开发这三种技术各自的优势,SOMA能 够更好地支持网络分布式环境下的软件协同工作,在技术平台变化时保持软件开发过程和产品的平台无关性,同时对需求变更可以较低的成本迅速做出 反应. 在深入到技术细节之前,本文给出了整个技术框架的全貌.首先,顺应面向服务的开发潮流,提出了一种新的软件开发范型,称为服务协作,意为 将相近但是互补的服务连接为一个更大的共享系统,服务之间相互成为合作伙伴.经过分析服务协作的概念模型,本文指出服务协作的核心问题是如何 协调多个服务参与到一个协作流程中.由于已有的控制驱动,数据驱动和混合驱动等协调机制不利于快速开发,平台移植和适应变化,因此,本文提出 了一种模型驱动的解决方法,将数据和控制抽象为与实现平台无关的形式化模型.接着,本文认为,通过把敏捷方法对可执行代码的热衷转变为以可执 行模型为中心,模型驱动与敏捷方法是兼容的,可以直接以形式化模型来驱动基于Web服务的协作,这要求在协调媒介的体系结构中包含解释器和协调器 等重要组成部分. 接着,本文给出了可执行服务协作模型及其可视化建模技术.在该模型中提出的构造称为它的语法,而根据该语法构造的实例的属性和行为称为它 的语义.为了便于可视化建模和可视化监控,服务协作模型是基于图论的,使用加权有向图来表达服务协作的流程.一个图代表一个流程,图中的结点 代表活动,有向边代表活动之间的转换,指示控制流的方向,边上的权值则是转换条件.一个活动既可能对应于某个Web服务上的操作调用,也可能需要 由某个子流程来实现,并且活动执行的过程中需要输入输出参数.因此,服务协作模型还包括了流程上下文数据的定义以及用于活动实现的服务与操作 等定义.此外,本文还给出了服务协作流程模型的良构性定义和判断方法.同时,本文还以自主实现的ONCEPI系统的流程建模工具为例,讨论了服务协 作模型的可视化开发技术. 服务协作模型之所以是可执行的,是因为它具有形式化的操作语义和具体的解释器.解释器可以基于操作语义中定义的规则解释执行根据模型生成 的流程实例.本文将流程实例中当前所有上下文数据的取值看成为流程实例的状态.格局则被定义为解释器中当前正在执行的一系列次序无关的流程实 例.流程实例的执行过程就是沿着流程模型中定义的控制流执行一系列活动实现,为此,本文定义了解释器对流程实例可用的一系列操作.流程实例一 旦建立,就会在这些操作的作用下不断更新变化,形成该流程实例的踪迹.本文证明了所给出的操作语义是良好定义和无死锁的,可以用来推导流程实 例踪迹和格局变化.本文还基于该操作语义,给出了用于解释器实现的解释执行算法.并且,本文基于解释器产生的流程实例踪迹,实现了可视化的流 程监控. 鉴于协调机制是服务协作的核心问题,本文基于Web服务操作的行为模式给出了服务协作的协调模式,服务协作流程实例的执行过程也是协调媒介与 若干个服务提供者之间的一系列交互过程.为此,本文参考CCS的思想,定义了称为服务协调演算(SCC)的进程代数模型.基于其语法可以将解释器,协 调器和服务都描述为进程,并能够使用所给出的操作语义规则推导这些进程的同步和通信过程.本文以RPC风格的SOAP通信为例,研究了协调媒介与提供 请求—响应类型操作的Web服务协调的过程.与前人有所不同的是,这种协调机制是模型驱动的,抽象的进程,动作和条件可以映射到服务协作模型及其 实例.本方法的优点在于较为清晰的关注点分离,适用于将许多或者简单或者复杂的服务组织成更复杂更庞大的业务系统,可以实现敏捷的应用开发, 运行和维护. 最后,本文介绍了自主实现的面向服务协作的敏捷开发支撑平台ONCEPI系统.ONCEPI的逻辑结构主要由开发平台中的建模工具和监控工具,运行平 台中的解释器和协调器等模块组成.建模工具和监控工具是基于服务协作模型的语法定义构造的;解释器基于服务协作模型的操作语义,实现了流程实 例的解释执行;协调器则由服务协作模型驱动,协调流程实例的基本活动执行与服务提供者的操作调用之间的交互.ONCEPI在J2EE平台之上实现,其关 键的支撑系统是ONCEAS,ONCEPI中解释器与协调器间的实例上下文传递是基于JMS消息驱动的,对内外部Web服务的调用则是基于ONCEAS内置的SOAP引擎 实现的.此外,本文还以UML图的形式介绍了一些关键类的实现,并给出了基于ONCEPI的敏捷开发过程.

10.期刊论文 马波.MA BO 敏捷开发方法在游戏软件开发中的应用 -电脑知识与技术2009,5(6)
敏捷软件开发是一种相对传统软件开发方法而言的轻型方法,强调以人为本,尽可能少的约束开人员,利于发挥开发人员的的创造性.也是提高软件质 量的根本.开发人员必须遵循敏捷开发实践,提高自身水平,游戏软件的开发是进行实践的好方式,本文以五千棋游戏开发为例,给出敏捷开发的一些关键实 践,需求的敏捷获取,代码的重构及测试驱动等响应需求变化的敏捷开发方法.

本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y877249.aspx 下载时间:2010年6月2日


相关文章:
XPP(Extreme Programming Practice)_图文.pdf
XPP(Extreme Programming Practice)_材料科学_工
Reflection_图文.ppt
Reflection is a way in which professionals can bridge the theory-practice gap, based on the potential of reflection to uncover knowledge in and on action...
Evolutionary+algorithms+in+theory+and+practice_图文.pdf
Evolutionary+algorithms+in+theory+and+practice_工程科技_专业资料。Fogel on B...Moreover, evolutionary programming, but this is gent, with the q-tournament...
Reaction and reflection in tetris.pdf
Reaction and reflection in tetris_专业资料。To ...practice is that an agent begins (unconsciously) ...Extreme Programming Pr... 68页 3下载券 On ...
Preservation and Reflection in Specification ()_免....pdf
Extreme Programming 44页 免费如要投诉违规内容,请到...Preservation and Reflection in Specification () Abstract...private attributes and global, shared actions, p...
...reflection and radiative heat dissipation in Sah....pdf
Keeping cool:Enhanced optical reflection and radiative heat dissipation in ...Cataglyphis bombycina, forage under extreme temperature conditions in the African...
Extreme Programming Practices Used to Facilitate Ef....pdf
are willing to adopt in both action and spirit....the Extreme Programming practice of Continuous Integration...firms, to governmental, to large global compani...
Extreme Programming.pdf
The customer decides scope, priority, and dates from a business perspective,...in Extreme Programming Commonsense XP extreme XP implementation practice Code ...
Extreme Programming by Example.pdf
Extreme Programming by Example_专业资料。In this ...and managed, as a side effect, to spread the ...Unfortunately, we did not practice “test first”...
eXtreme Programming In A Hostile Environment.pdf
eXtreme Programming In A Hostile Environment_专业...and represent the best practice that has ...factors such as the lack of reflection are considered...
...Tall Tales, and Stories Extreme Programming the ....pdf
and Stories Extreme Programming the Oak Grove Way...tribulations, and successes of XP in practice. In...and our comments, are: Action versus Reflection....
Bridging the Gap Between Theory and Practice in Pre....pdf
Bridging the Gap Between Theory and Practice in Preservice Education The Use...“reflection-in-action, e.g. contextualizing craft and propositional ...
o Knowledge Representation o Software Design and De....pdf
and Communication o Narrative Practice and ...Reflection and Teamwork PGCert Narrative Research, ...eXtreme Programming and Agile Processes in Software...
book3 unit3_图文.ppt
3)深思,考虑 ?He had time to reflect on/upon his successes and failures....reflection 1) 倒影,镜像 reflection in the mirror/the glass 2) (某种现象...
雅思考官对背答案的考生态度强硬.doc
reflection of their English language skills," they...extreme imbalance in performance levels in the ...practice and would determine that the scores can'...
【美联英语】双语阅读:人生十二最.doc
Chinese people pay attention to reflection, reflection. In fact, can reflect...practice internal strength, and strive to degenerate their own natural tail....
背诵材料.doc
In order to choose a suitable hair color, you ...Sunday School Sunday School is a practice designed...and reflection on the values of Christianity and ...
WHO'S IN CONTROL CONSIDERING ISSUES OF POWER AND CO....pdf
extreme form of teacher control" in which the ...and reflection within the CAA process the impact ...practice of CAA will be considered from a range...
Argumentation Week Three - 图文- 百度文库.ppt
minutes to practice identifying the fallacies we just discussed in the ...clear reflection of lowerlevel epistemology received and subjective knowing....
现代物理学的诞生_图文.ppt
in straight lines or rays Explained sharp shadows Explained reflection and ...Opposition to atomic theory Ernst Mach was an extreme —logical positivist,...