xp极限模型 Extreme programmingWord文档下载推荐.docx
《xp极限模型 Extreme programmingWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《xp极限模型 Extreme programmingWord文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
![xp极限模型 Extreme programmingWord文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/11/61522c2f-d2ba-45a2-8d13-89d9dca48582/61522c2f-d2ba-45a2-8d13-89d9dca485821.gif)
Criticshavenotedseveralpotentialdrawbacks,[5]includingproblemswithunstablerequirements,nodocumentedcompromisesofuserconflicts,andalackofanoveralldesignspecificationordocument.
Contents
聽[hide]聽
∙1History
o1.1Origins
o1.2Currentstate
∙2Concept
o2.1Goals
o2.2Activities
▪2.2.1Coding
▪2.2.2Testing
▪2.2.3Listening
▪2.2.4Designing
o2.3Values
▪2.3.1Communication
▪2.3.2Simplicity
▪2.3.3Feedback
▪2.3.4Courage
▪2.3.5Respect
o2.4Rules
o2.5Principles
▪2.5.1Feedback
▪2.5.2Assumingsimplicity
▪2.5.3Embracingchange
∙3Practices
o3.1Fine-scalefeedback
o3.2Continuousprocess
o3.3Sharedunderstanding
o3.4Programmerwelfare
o3.5Coding
o3.6Testing
∙4Controversialaspects
o4.1Scalability
o4.2Severabilityandresponses
∙5Criticism
∙6Seealso
∙7References
∙8Furtherreading
∙9Externallinks
History[edit]
ExtremeProgrammingwascreatedbyKentBeckduringhisworkontheChryslerComprehensiveCompensationSystem(C3)payrollproject.[5]BeckbecametheC3projectleaderinMarch1996andbegantorefinethedevelopmentmethodologyusedintheprojectandwroteabookonthemethodology(inOctober1999,ExtremeProgrammingExplainedwaspublished).[5]ChryslercancelledtheC3projectinFebruary2000,aftersevenyears,whenthecompanywasacquiredbyDaimler-Benz.[6]
Althoughextremeprogrammingitselfisrelativelynew,manyofitspracticeshavebeenaroundforsometime;
themethodology,afterall,takes"
bestpractices"
toextremelevels.Forexample,the"
practiceoftest-firstdevelopment,planningandwritingtestsbeforeeachmicro-increment"
wasusedasearlyasNASA'
sProjectMercury,intheearly1960s(Larman2003).Toshortenthetotaldevelopmenttime,someformaltestdocuments(suchasforacceptancetesting)havebeendevelopedinparallel(orshortlybefore)thesoftwareisreadyfortesting.ANASAindependenttestgroupcanwritethetestprocedures,basedonformalrequirementsandlogicallimits,beforethesoftwarehasbeenwrittenandintegratedwiththehardware.InXP,thisconceptistakentotheextremelevelbywritingautomatedtests(perhapsinsideofsoftwaremodules)whichvalidatetheoperationofevensmallsectionsofsoftwarecoding,ratherthanonlytestingthelargerfeatures.
Origins[edit]
Softwaredevelopmentinthe1990swasshapedbytwomajorinfluences:
internally,object-orientedprogrammingreplacedproceduralprogrammingastheprogrammingparadigmfavoredbysomeintheindustry;
externally,theriseoftheInternetandthedot-comboomemphasizedspeed-to-marketandcompanygrowthascompetitivebusinessfactors.Rapidlychangingrequirementsdemandedshorterproductlife-cycles,andwereoftenincompatiblewithtraditionalmethodsofsoftwaredevelopment.
TheChryslerComprehensiveCompensationSystem(C3)wasstartedinordertodeterminethebestwaytouseobjecttechnologies,usingthepayrollsystemsatChryslerastheobjectofresearch,withSmalltalkasthelanguageandGemStoneasthedataaccesslayer.TheybroughtinKentBeck,[5]aprominentSmalltalkpractitioner,todoperformancetuningonthesystem,buthisroleexpandedashenotedseveralproblemstheywerehavingwiththeirdevelopmentprocess.Hetookthisopportunitytoproposeandimplementsomechangesintheirpracticesbasedonhisworkwithhisfrequentcollaborator,WardCunningham.Beckdescribestheearlyconceptionofthemethods:
[7]
ThefirsttimeIwasaskedtoleadateam,IaskedthemtodoalittlebitofthethingsIthoughtweresensible,liketestingandreviews.Thesecondtimetherewasalotmoreontheline.Ithought,"
Damnthetorpedoes,atleastthiswillmakeagoodarticle,"
[and]askedtheteamtocrankupalltheknobsto10onthethingsIthoughtwereessentialandleaveouteverythingelse.
BeckinvitedRonJeffriestotheprojecttohelpdevelopandrefinethesemethods.JeffriesthereafteractedasacoachtoinstillthepracticesashabitsintheC3team.
InformationabouttheprinciplesandpracticesbehindXPwasdisseminatedtothewiderworldthroughdiscussionsontheoriginalwiki,Cunningham'
sWikiWikiWeb.Variouscontributorsdiscussedandexpandedupontheideas,andsomespin-offmethodologiesresulted(seeagilesoftwaredevelopment).Also,XPconceptshavebeenexplained,forseveralyears,usingahypertextsystemmapontheXPwebsiteat"
http:
//www.extremeprogramming.org"
circa1999.
BeckeditedaseriesofbooksonXP,beginningwithhisownExtremeProgrammingExplained(1999,ISBN0-201-61641-6),spreadinghisideastoamuchlargeraudience.AuthorsintheserieswentthroughvariousaspectsattendingXPanditspractices.Theseriesincludedabookthatwascriticalofthepractices.
Currentstate[edit]
XPgeneratedsignificantinterestamongsoftwarecommunitiesinthelate1990sandearly2000s,seeingadoptioninanumberofenvironmentsradicallydifferentfromitsorigins.
Thehighdisciplinerequiredbytheoriginalpracticesoftenwentbythewayside,causingsomeofthesepractices,suchasthosethoughttoorigid,tobedeprecatedorreduced,orevenleftunfinished,onindividualsites.Forexample,thepracticeofend-of-dayintegrationtestsforaparticularprojectcouldbechangedtoanend-of-weekschedule,orsimplyreducedtomutuallyagreeddates.Suchamorerelaxedschedulecouldavoidpeoplefeelingrushedtogenerateartificialstubsjusttopasstheend-of-daytesting.Aless-rigidscheduleallows,instead,forsomecomplexfeaturestobemorefullydevelopedoveraseveral-dayperiod.However,somelevelofperiodicintegrationtestingcandetectgroupsofpeopleworkinginnon-compatible,tangenteffortsbeforetoomuchworkisinvestedindivergent,wrongdirections.
Meanwhile,otheragiledevelopmentpracticeshavenotstoodstill,andXPisstillevolving,assimilatingmorelessonsfromexperiencesinthefield,touseotherpractices.InthesecondeditionofExtremeProgrammingExplained(November2004),fiveyearsafterthefirstedition,Beckaddedmorevaluesandpracticesanddifferentiatedbetweenprimaryandcorollarypractices.
Concept[edit]
Goals[edit]
ExtremeProgrammingExplaineddescribesextremeprogrammingasasoftware-developmentdisciplinethatorganizespeopletoproducehigher-qualitysoftwaremoreproductively.
XPattemptstoreducethecostofchangesinrequirementsbyhavingmultipleshortdevelopmentcycles,ratherthanalongone.Inthisdoctrine,changesareanatural,inescapableanddesirableaspectofsoftware-developmentprojects,andshouldbeplannedfor,insteadofattemptingtodefineastablesetofrequirements.
Extremeprogrammingalsointroducesanumberofbasicvalues,principlesandpracticesontopoftheagileprogrammingframework.
Activities[edit]
XPdescribesfourbasicactivitiesthatareperformedwithinthesoftwaredevelopmentprocess:
coding,testing,listening,anddesigning.Eachofthoseactivitiesisdescribedbelow.
Coding[edit]
TheadvocatesofXParguethattheonlytrulyimportantproductofthesystemdevelopmentprocessiscode鈥?
softwareinstructionsthatacomputercaninterpret.Withoutcode,thereisnoworkingproduct.
Codingcanalsobeusedtofigureoutthemostsuitablesolution.Codingcanalsohelptocommunicatethoughtsaboutprogrammingproblems.Aprogrammerdealingwithacomplexprogrammingproblem,orfindingithardtoexplainthesolutiontofellowprogrammers,mightcodeitinasimplifiedmannerandusethecodetodemonstratewhatheorshemeans.Code,saytheproponentsofthisposition,isalwaysclearandconciseandcannotbeinterpretedinmorethanoneway.Otherprogrammerscangivefeedbackonthiscodebyalsocodingtheirthoughts.
Testing[edit]
Mainarticle:
Test-drivendevelopment
Extremeprogramming'
sapproachisthatifalittletestingcaneliminateafewflaws,alotoftestingcaneliminatemanymoreflaws.
∙Unittestsdeterminewhetheragivenfeatureworksasintended.Aprogrammerwritesasmanyautomatedtestsastheycanthinkofthatmight"
break"
thecode;
ifalltestsrunsuccessfully,thenthecodingiscomplete.Everypieceofcodethatiswrittenistestedbeforemovingontothenextfeature.
∙Acceptancetestsverifythattherequirementsasunderstoodbytheprogrammerssatisfythecustomer'
sactualrequirements.
System-wideintegrationtestingwasencouraged,initially,asadailyend-of-dayactivity,forearlydetectionofincompatibleinterfaces,toreconnectbeforetheseparatesectionsdivergedwidelyfromcoherentfunctionality.However,system-wideintegrationtestinghasbeenreduced,