软件开发方法外文文献

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SoftwareDevelopmentMethodologiesIntroductionSoftwaremethodologiesareconcernedwiththeprocessofcreatingsoftware-notsomuchthetechnicalsidebuttheorganizationalaspects.Inthis,thefirstoftwoarticles,Iwillintroducethedifferenttypesofmethodologies.Iwilldescribethemfromanhistoricalperspective,asonewaytounderstandwhereweareandwherewearegoingistoknowwherewehavebeen.TherewillalsobeasubsequentcompanionarticlelookingatthecurrentstateoftheartandwhatIbelievethefutureholds.ThissecondarticleisgiventherathercontroversialtitleofWhyCreatingSoftwareisnotEngineering,whichIwill,ofcourse,explain.Inthe2ndarticleIwilldiscussseveralpopularagilemethodologiesparticularlytheirmostimportantaspects(suchasunittesting),whicharegenerallyneglectedorglossedover.BeforebeginningIshouldwarnthereaderofmypenchantforanalogy.Actuallythiswholearticleisonebiganalogystretchedalmosttobreakingpoint.Ilikethembecausemanyoftheconceptsinsoftwaredevelopmentareabstractandhardtograsp,butusingafamiliarreal-worldsituation,liketakingataxitothepub,canclarifytheideas.Ofcourse,thereisalwaysthecaveatthatnoanalogyisperfect.Becarefultounderstandthesimilaritiesandthedifferences.Ad-hocHistorically,thefirstmethodologywasbasicallynomethodologyatall.Thisisgenerallycalledtheadhocmethodology.We'llstartwithasimplescenario.YouaretomeetyourfriendJimattheStationHotel.Youhavenoideawherethatisbutyoujumpinacabandtellthetaxidriverwhereyouwanttogo.Afewminuteslateryouarriveatyourdestinationsafelyandwithoutwastinganydrinkingtime!Inthisanalogyyouarethecustomerandthetaxidriveristhedeveloper.Theaboveistheidealcasewherethecustomerknowswheretheywanttogoandthedeveloperknowshowtogetthere.Unfortunatelytherealworldisneverthissimple.Considerthesevariations.Problems1.YoutellthedriverwheretogobutyouendupatthetrainstationnottheStationHotel.Obviouslyhemisheardyouandafterallmanyofhispassengersgothere.Youclarifythesituationbutthetaxidriverisuncommunicativeandyouendupatthewronghotel.Eventually,youworkoutthatthedriverdoesnotspeakEnglishwell.Atsomepointyougiveup.IfyouarereallypersistentyoumightgettoyourdestinationbutbythenJimhasalreadyleft.2.YouaskthetaxidrivertotakeyoutotheStationHoteltowhichtheimmediatereplyisWhichone?.Apparently,therearethreewithinatenmileradiusandyoudon'tknowwhichoneJimwentto.Youtrythemallbutcan'tfindJim.ThedriversuggestsitmightbetheFireStationHotelwhichwasactuallynotfarfromwhereyoustarted.3.Thetaxidriverkindlyinformsyouthatyourdestinationisquitedistantandyoudonothaveenoughmoney.Hesuggeststhatyoutakethebus.Ofcourse,thebusisslowanddoesnotgodirectlypastthepub.Yougetthereeventually.4.Thetaxitakesyoustraighttothehotelbutit'sclosedforbusiness.5.Youarehalfwaytherewhenyourealiseyouneedtopostaletter.ThenJimcallsyourmobileandsaysthathehasgonetoadifferenthotel.Thenyougetstuckintrafficandalsoneedtousethebathroom.Thewholetripismuchlongerandmoreexpensivethanexpected.6.Thetaxidriverseemstoknowwheretogobutisinexperiencedandafterquiteawhileherealisesthatheisgoingcompletelythewrongdirection.Severaltimeshehastobacktrackbuteventuallyfindsthedestinationthoughthetriptakesmuchlongerthanexpected.I'msureyoucanthinkofmanymorethingsthatcangowrong.SummaryThead-hocmethodologycanworkprovidedyouhaveasimpleproblem.Ifthecustomerknowsexactlywhattheywantandthedeveloperknowshowtogiveittothemandhastherighttoolstodoso(areliablevehicleandastreetdirectoryifnecessary)thenthereisagoodchanceofsuccess.However,mostofthetimeyougettherelateornotatall.Theabovescenariosrepresentseveralcommonproblemsseeninsoftwaredevelopment,namelymiscommunication(1),acustomerwhodoesn'tknowexactlywhattheywant(2)orthinkstheydountiltheytryit(4),changingrequirements(5)andinexperienceddevelopers(6).Ileaveitthereadertoworkoutwhatscenario3means.WaterfallOK,youwanttoavoidalltheaboveproblems,butwhatdoyoudo?Conventionalwisdomistoaskanexpertforhelpandtherearemanywillinghelpersreadytoprovidetheirservices,forafee,ofcourse.Youfindthatyouneedananalysttoworkoutwhereyoureallywanttogoandadesignertoprovidedetailedunambiguousinstructionsonhowtogetthere.Theanalystworksoutbydeductionand/oreducatedguessworkexactlywhichStationHotelyouwant.PerhapstheyevenmanagetocontactJimtoconfirmthelocation.Theyalsofindouttheexactaddressandtheopeninghours.Nowyouknowexactlywhereyouwanttogobuthowtogetthere?Thedesignerprovidesaspecificationorinstructionsforgettingtothehotel-egproceed2milestotheroundabout,takethe3rdexit,etc.Toensurethatthedriverunderstandstheinstructionstheessentialpartsareeventranslatedintohisnativelanguage.Agooddesignermightalsotrytoanticipateproblemsandhavecontingencyplans-eg,ifthefreewayhasheavytraffictotakeanalternativeroute.Theessentialpointofthespecificationistohavethetripcompletelyandthoroughlyplannedbeforestartingout.Everybodyinvolvedreadsthespecificationandagreesthatthisshouldgetthecustomertothepubontime.Canyouseeaproblemwiththisapproach?Whiletheanalyst/designerisbusyatworkyou(thecustomer)aregettingabitnervous.It'sbeensometimeandyoustillhaven'tgoneanywhere.Youalsowantfeedbackthatonceyoustartthetripeverythingwillstayontrack,sinceyourexperienceoftaxijourneysisthattheycan

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功