已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1英文原文TheexplosionoftheInternetande-businessinrecentyearshascausedasecondaryexplosionofinformation.Industryanalystspredictthatmoredatawillbegeneratedinthenextthreeyearsthaninallofrecordedhistory.Enterprisebusinessapplicationscanrespondtothisinformationoverloadinoneoftwoways:theycanbendandbreakunderthesheervolumeanddiversityofsuchdata,ortheycanharnessthisinformationandtransformitintoavaluableassetbywhichtogainacompetitiveadvantageinthemarketplace.BecausetheadoptionofInternet-basedbusinesstransactionmodelshassignificantlyoutpacedthedevelopmentoftoolsandtechnologiestodealwiththeinformationexplosion,manybusinessesfindthemselvesunintentionallyusingtheformerapproach.Significantdevelopmentresourcesarespentonquickanddirtyintegrationsolutionsthatcobbletogetherdifferentdatamanagementsystems(databases,contentmanagementsystems,enterpriseapplicationsystems)andtransformdatafromoneformattoanother(structured,XML,bytestreams).Revenueislostwhenapplicationssufferfromscalabilityandavailabilityproblems.Newbusinessopportunitiesaresimplyoverlookedbecausethecriticalnuggetsofinformationrequiredtomakeabusinessdecisionarelostamongthemassesofdatabeinggenerated.Relationaldatabaseswerebornoutofaneedtostore,manipulateandmanagetheintegrityoflargevolumesofdata.Inthe1960s,networkandhierarchicalsystemssuchasCODASYLandIMSwerethestate-of-the-arttechnologyforautomatedbanking,accounting,andorderprocessingsystemsenabledbytheintroductionofcommercialmainframecomputers.Whilethesesystemsprovidedagoodbasisfortheearlysystems,theirbasicarchitecturemixedthephysicalmanipulationofdatawithitslogicalmanipulation.Whenthephysicallocationofdatachanged,suchasfromoneareaofadisktoanother,applicationshadtobeupdatedtoreferencethenewlocation.ArevolutionarypaperbyCoddin1970anditscommercialimplementationschangedallthat.Coddsrelationalmodelintroducedthenotionofdataindependence,whichseparatedthephysicalrepresentationofdatafromthelogicalrepresentationpresentedtoapplications.Data2couldbemovedfromonepartofthedisktoanotherorstoredinadifferentformatwithoutcausingapplicationstoberewritten.Applicationdeveloperswerefreedfromthetediousphysicaldetailsofdatamanipulation,andcouldfocusinsteadonthelogicalmanipulationofdatainthecontextoftheirspecificapplication.Notonlydidtherelationalmodeleasetheburdenofapplicationdevelopers,butitalsocausedaparadigmshiftinthedatamanagementindustry.Theseparationbetweenwhatandhowdataisretrievedprovidedanarchitecturebywhichthenewdatabasevendorscouldimproveandinnovatetheirproducts.SQLbecamethestandardlanguagefordescribingwhatdatashouldberetrieved.Newstorageschemes,accessstrategies,andindexingalgorithmsweredevelopedtospeeduphowdatawasstoredandretrievedfromdisk,andadvancesinconcurrencycontrol,logging,andrecoverymechanismsfurtherimproveddataintegrityguaranteesGRAYLINDARIES.Cost-basedoptimizationtechniquesOPTcompletedthetransitionfromdatabasesactingasanabstractdatamanagementlayertobeinghigh-performance,high-volumequeryprocessingengines.Ascompaniesglobalizedandastheirdataquicklybecamedistributedamongtheirnationalandinternationaloffices,theboundariesofDBMStechnologyweretestedagain.DistributedsystemssuchasR*andTANDEMshowedthatthebasicDBMSarchitecturecouldeasilybeexploitedtomanagelargevolumesofdistributeddata.DistributeddataledtotheintroductionofnewparallelqueryprocessingtechniquesPARA,demonstratingthescalabilityoftheDBMSasahigh-performance,high-volumequeryprocessingengine.ThelessonslearnedinextendingtheDBMSwithdistributedandparallelalgorithmsalsoledtoadvancesinextensibility,wherebythemonolithicDBMSarchitecturewasreplumbedwithplug-and-playcomponentsSTARBURST.Suchanarchitectureenablednewabstractdatatypes,accessstrategiesandindexingschemestobeeasilyintroducedasnewbusinessneedsarose.DatabasevendorslatermadethesehookspubliclyavailabletocustomersasOracledatacartridges,InformixDataBlades,andDB2Extenders.Throughoutthe1980s,thedatabasemarketmaturedandcompaniesattemptedtostandardizeonasingledatabasevendor.However,therealityofdoingbusinessgenerallymadesuchastrategyunrealistic.Fromindependentdepartmentalbuyingdecisiontomergers3andacquisitions,thescenarioofmultipledatabaseproductsandothermanagementsystemsinasingleITshopbecamethenormratherthantheexception.Businessessoughtawaytostreamlinetheadministrativeanddevelopmentcostsassociatedwithsuchaheterogeneousenvironment,andthedatabaseindustryrespondedwithfederation.FederateddatabasesFEDprovidedapowerfulandflexiblemeansfortransparentaccesstoheterogeneous,distributeddatasources.WearenowinanewrevolutionaryperiodenabledbytheInternetandfueledbythee-businessexplosion.Overthepastsixyears,JavaTMandXMLhavebecomethevehiclesforportablecodeandportabledata.Toadapt,databasevendorshavebeenabletodrawonearlieradvancesindatabaseextensibilityandabstractdatatypestoquicklyprovideobject-relationaldatamodelsOR,mechanismstostoreandretrieverelationaldataasXMLdocumentsXTABLES,andXMLextensionstoSQLSQLX.TheeasewithwhichcomplexInternet-basedapplicationscanbedevelopedanddeployedhasdramaticallyacceleratedthepaceofautomatingbusinessprocesses.Thepremiseofourpaperisthatthechallengefacingbusinessestodayisinformationintegration.Enterpriseapplicationsrequireinteractionnotonlywithdatabases,butalsocontentmanagementsystems,datawarehouses,workflowsystems,andotherenterpriseapplicationsthathavedevelopedonaparallelcoursewithrelationaldatabases.Inthenextsection,weillustratetheinformationintegrationchallengeusingascenariodrawnfromareal-worldproblem.Whileyouregoingthroughthedevelopmentprocess,themostimportantissueisthis:Dontgetlost.Itseasytodo.Mostoftheanalysisanddesignmethodsareintendedtosolvethelargestofproblems.Rememberthatmostprojectsdontfitintothatcategory,soyoucanusuallyhavesuccessfulanalysisanddesignwitharelativelysmallsubsetofwhatamethodrecommends.Butsomesortofprocess,nomatterhowlimited,willgenerallygetyouonyourwayinamuchbetterfashionthansimplybeginningtocode.Itsalsoeasytogetstuck,tofallinto“analysisparalysis,”whereyoufeellikeyoucantmoveforwardbecauseyouhaventnaileddowneverylittledetailatthecurrentstage.Remember,nomatterhowmuchanalysisyoudo,therearesomethingsaboutasystemthat4wontrevealthemselvesuntildesigntime,andmorethingsthatwontrevealthemselvesuntilyourecoding,ornotevenuntilaprogramisupandrunning.Becauseofthis,itscrucialtomovefairlyquicklythroughanalysisanddesign,andtoimplementatestoftheproposedsystem.Thispointisworthemphasizing.Becauseofthehistorywevehadwithprocedurallanguages,itiscommendablethatateamwillwanttoproceedcarefullyandunderstandeveryminutedetailbeforemovingdesignandimplementation.Certainly,whencreatingaDBMS,itpaystounderstandacustomersneedsthoroughly.ButaDBMSisinaclassofproblemsthatisverywell-posedandwell-understood;inmanysuchprograms,thedatabasestructureistheproblemtobetackled.Theclassofprogrammingproblemdiscussedinthischapterisofthe“wild-card”(myterm)variety,inwhichthesolutionisntsimplyre-formingawell-knownsolution,butinsteadinvolvesoneormore“wild-cardfactors”-elementsforwhichthereisnowell-understoodprevioussolution,andforwhichresearchisnecessary.Attemptingtothoroughlyanalyzeawildcardproblembeforemovingintodesignandimplementationresultsinanalysisparalysisbecauseyoudonthaveenoughinformationtosolvethiskindofproblemduringtheanalysisphase.Solvingsuchaproblemrequiresiterationthroughthewholecycle,andthatrequiresrisk-takingbehavior(whichmakessense,becauseyouretryingtodosomethingnewandthepotentialrewardsarehigher).Itmayseemliketheriskiscompoundedby“rushing”intoapreliminaryimplementation,butitcaninsteadreducetheriskinawild-cardprojectbecauseyourefindingoutearlywhetheraparticularapproachtotheproblemisviable.Productdevelopmentisriskmanagement.Itsoftenproposedthatyou“buildonetothrowaway.”WithOOP,youmaystillthrowpartofitaway,butbecausecodeisencapsulatedintoclasses,duringthefirstiterationyouwillinevitablyproducesomeusefulclassdesignsanddevelopsomeworthwhileideasaboutthesystemdesignthatdonotneedtobethrownaway.Thus,thefirstrapidpassataproblemnotonlyproducescriticalinformationforthenextanalysis,design,andimplementationiteration,italsocreatesacodefoundationforthatiteration.Thatsaid,ifyourelookingatamethodologythatcontainstremendousdetailandsuggestsmanystepsanddocuments,itsstilldifficulttoknowwhentostop.Keepinmind5whatyouretryingtodiscover:Whataretheobjects?(Howdoyoupartitionyourprojectintoitscomponentparts?)Whataretheirinterfaces?(Whatmessagesdoyouneedtobeabletosendtoeachobject?)Ifyoucomeupwithnothingmorethantheobjectsandtheirinterfaces,thenyoucanwriteaprogram.Forvariousreasonsyoumightneedmoredescriptionsanddocumentsthanthis,butyoucantgetawaywithanyless.Theprocesscanbeundertakeninfivephases,andaphase0thatisjusttheinitialcommitmenttousingsomekindofstructure.Phase0:MakeaplanYoumustfirstdecidewhatstepsyouregoingtohaveinyourprocess.Itsoundssimple(infact,allofthissoundssimple)andyetpeopleoftendontmakethisdecisionbeforetheystartcoding.Ifyourplanis“letsjumpinandstartcoding,”fine.(Sometimesthatsappropriatewhenyouhavewell-understoodproblem.)Atleastagreethatthisistheplan.Youmightalsodecideatthisphasethatsomeadditionalprocessstructureisnecessary,butnotthewholenineyards.Understandablyenough,someprogrammersliketoworkin“vacationmode”inwhichnostructureisimposedontheprocessofdevelopingtheirword;“Itwillbedonewhenitsdone.”Thiscanbeappealingforawhile,butIvefoundthathavingafewmilestonesalongthewayhelpstofocusandgalvanizeyoureffortsaroundthosemilestonesinsteadofbeingstuckwiththesinglegoalof“finishtheproject.”Inaddition,itdividestheprojectintomorebite-sizedpiecesandmakesitseemlessthreatening(plusthemilestonesoffermoreopportunitiesforcelebration).WhenIbegantostudystorystructure(sothatIwillsomedaywriteanovel)Iwasinitiallyresistanttotheideaofstructure,feelingthatwhenIwroteIsimplyletitflowontothepage.ButIlaterrealizedthatwhenIwriteaboutcomputersthestructureisclearenoughsothatIdontthinkmuchaboutit.ButIstillstructuremywork,albeitonlysemi-consciouslyinmyhead.Soevenifyouthinkthatyourplanistojuststartcoding,youstillsomehowgothroughthesubsequentphaseswhileaskingandansweringcertainquestions.6ThemissionstatementAnysystemyoubuild,nomatterhowcomplicated,hasafundamentalpurpose,thebusinessthatitsin,andthebasicneedthatitsatisfies.Ifyoucanlookpasttheuserinterface,thehardware-orsystem-specificdetails,thecodingalgorithmsandtheefficiencyproblems,youwilleventuallyfindthecoreofitsbeing,simpleandstraightforward.Liketheso-calledhighconceptfromaHollywoodmovie,youcandescribeitinoneoretwosentences.Thispuredescriptionisthestartingpoint.Thehighconceptisquiteimportantbecauseitsetsthetoneforyourproject;itsamissionstatement.Youwontnecessarilygetitrightthefirsttime(youmaybeinalaterphaseoftheprojectbeforeitbecomescompletelyclear),butkeeptryinguntilitfeelsright.Forexample,inanair-trafficcontrolsystemtoaverysmallairfield;perhapstheresonlyahumancontrollerornoneatall.Amoreusefulmodelwontconcernthesolutionyourecreatingasmuchasitdescribestheproblem:“Aircraftarrive,unload,serviceandreload,anddepart.”Phase1:Whatarewemaking?Itsnecessarytostayfocusedontheheartofwhatyouretryingtoaccomplishinthisphase:determinewhatthesystemissupposedtodo.Themostvaluabletoolforthisisacollectionofwhatarecalled“usecases.”Usecasesidentifykeyfeaturesinthesystemthatwillrevealsomeofthefundamentalclassesyoullbeusing.Theseareessentiallydescriptiveanswerstoquestionslike:“Whowillusethissystem?”“Whatcanthoseactorsdowiththesystem?”“Howdoesthisactordothatwiththissystem?”“Howelsemightthisworkifsomeoneelseweredoingthis,orifthesameactorhadadifferentobjective?”(torevealvariations)“Whatproblemsmighthappenwhiledoingthiswiththesystem?”(torevealexceptions)Ifyouaredesigninganauto-teller,forexample,theusecaseforaparticularaspectofthefunctionalityofthesystemisabletodescribewhattheauto-tellerdoesineverypossiblesituation.Eachofthese“situations”isreferredtoasascenario,andausecasecanbe7consideredacollectionofscenarios.Youcanthinkofascenarioasaquestionthatstartswith:“Whatdoesthesystemdoif?”Forexample,“Whatdoestheauto-tellerdoifacustomerhasjustdepositedacheckwithin24hoursandtheresnotenoughintheaccountwithoutthechecktoprovidethedesiredwithdrawal?”Usecasediagramsareintentionallysimpletopreventyoufromgettingboggeddowninsystemimplementationdetailsprematurely:Theusecasesproducetherequirementsspecificationsbydeterminingalltheinteractionsthattheusermayhavewiththesystem.Youtrytodiscoverafullsetofusecasesforyoursystems,andonceyouvedonethatyouhavethecoreofwhatthesystemissupposedtodo.Thenicethingaboutfocusingonusecasesisthattheyalwaysbringyoubacktotheessentialsandkeepyoufromdriftingoffintoissuesthatarentcriticalforgettingthejobdone.Thatis,ifyouhaveafullsetofusecasesyoucandescribeyoursystemandmoveontothenextphase.Youprobablywontgetitallfiguredoutperfectlyonthefirsttry,butthatsOK.Everythingwillrevealitselfintime,andifyoudemandaperfectsystemspecificationatthispointyoullgetstuck.Phase2:Howwillwebuildit?Inthisphaseyoumustcomeupwithadesignthatdescribeswhattheclasseslooklikeandhowtheywillinteract.AnexcellenttechniqueindeterminingclassesandinteractionsistheClass-Responsibility-Collaboration(CRC)card.Partofthevalueofthistoolisthatitssolow-tech:youstartoutwithasetofblank3”by5”cards,andyouwriteonthem.Eachcardrepresentsasingleclass,andonthecardyouwrite:Thenameoftheclass.Itsimportantthatthisnamecapturetheessenceofwhattheclassdoes,sothatitmakessenseataglance.The“responsibilities”oftheclass:whatitshoulddo.Thiscantypicallybesummarizedbyjuststatingthenamesofthememberfunctions(sincethosenamesshouldbedescriptiveinagooddesign),butitdoesnotprecludeothernotes.Ifyouneedtoseedtheprocess,lookattheproblemfromalazyprogrammersstandpoint:Whatobjectswouldyouliketomagicallyappeartosolveyourproblem?The“collaborations”oftheclass:whatotherclassesdoesitinteractwith?“Interact”is8anintentionallybroadterm;itcouldmeanaggregationorsimplythatsomeotherobjectexiststhatwillperformservicesforanobjectoftheclass.Collaborationsshouldalsoconsidertheaudienceforthisclass.Forexample,ifyoucreateaclassFirecracker,whoisgoingtoobserveit,aChemistoraSpectator?Theformerwillwanttoknowwhatchemicalsgointotheconstruction,andthelatterwillrespondtothecolorsandshapesreleasedwhenitexplodes.Youmayfeellikethecardsshouldbebiggerbecauseofalltheinformationyoudliketogetonthem,buttheyareintentionallysmall,notonlytokeepyourclassessmallbutalsotokeepyoufromgettingintotoomuchdetailtooearly.Ifyoucantfitallyouneedtoknowaboutaclassonasmallcard,theclassistoocomplex(eitheryouregettingtoodetailed,oryoushouldcreatemorethanoneclass).Theidealclassshouldbeunderstoodataglance.TheideaofCRCcardsistoassistyouincomingupwithafirstcutofthedesignsothatyoucangetthebigpictureandthenrefineyourdesign.OneofthegreatbenefitsofCRCcardsisincommunication.Itsbestdonereal-time,inagroup,withoutcomputers.Eachpersontakesresponsibilityforseveralclasses(whichatfirsthavenonamesorotherinformation).Yourunalivesimulationbysolvingonescenarioatatime,decidingwhichmessagesaresenttothevariousobjectstosatisfyeachscenario.Asyougothroughthisprocess,youdiscovertheclassesthatyouneedalongwiththeirresponsibilitiesandcollaborations,andyoufilloutthecardsasyoudothis.Whenyouvemovedthroughalltheusecases,youshouldhaveafairlycompletefirstcutofyourdesign.BeforeIbeganusingCRCcards,themostsuccessfulconsultingexperiencesIhadwhencomingupwithaninitialdesigninvolvedstandinginfrontofateam,whohadntbuiltanOOPprojectbefore,anddrawingobjectsonawhiteboard.Wetalkedabouthowtheobjectsshouldcommunicatewitheachother,anderasedsomeofthemandreplacedthemwithotherobjects.Effectively,Iwasmanagingallthe“CRCcards”onthewhiteboard.Theteam(whoknewwhattheprojectwassupposedtodo)actuallycreatedthedesign;they“owned”thedesignratherthanhavingitgivingitgiventothem.AllIwasdoingwasguidingtheprocessbyaskingtherightquestions,tryingouttheassumptions,andtakingthefeedbackfromtheteamtomodifythoseassumptions.Theturn9beautyoftheprocesswasthattheteamlearnedhowtodoobject-orienteddesignnotbyreviewingabstractexamples,butbyworkingontheonedesignthatwasmostinterestingtothematthatmoment:theirs.OnceyouvecomeupwithasetofCRCcards,youmaywanttocreateamoreformaldescriptionofyourdesignusingUML.YoudontneedtouseUML.butitcanbehelpful,especiallyifyouwanttoputupadiagramonthewallforeveryonetoponder,whichisagoodidea.AnalternativetoUMLisatextualdescriptionoftheobjectsandtheirinterfaces,or,dependingonyourprogramminglanguages,thecodeitself.UMLalsoprovidesanadditionaldiagrammingnotationfordescribingthedynamicmodelofyoursystem.Thisishelpfulinsituationsinwhichthestatetransitionsofasystemorsubsystemaredominantenoughthattheyneedtheirowndiagrams(suchasinacontrolsystem).Youmayalsoneedtodescribethedatastructures,forsystemsorsubsystemsinwhichdataisadominantfactor(suchasadatabase),Youllknowyouredonewithphase2whenyouhavedescribedtheobjectsandtheirinterfaces.Well,mostofthemthereareusuallyafewthatslipthroughthecracksanddontmakethemselvesknownuntilphase3.ButthatsOK.Allyouareconcernedwithisthatyoueventuallydiscoverallofyourobjects.ItsnicetodiscoverthemearlyintheprocessbutOOPprovidesenoughstructuresothatitsnotsobadifyoudiscoverthemlater.Infact,thedesignofanobjecttendstohappeninfivestages,throughouttheprocessofprogramdevelopment.Phase3:BuildthecoreThisistheinitialconversionfromtheroughdesignintoacompilingandexecutingbodyofcodethatcanbetested,andespeciallythatwillproveordisproveyourarchitecture.Thisisnotaone-passprocess,butratherthebeginningofaseriesofstepsthatwilliterativelybuildthesystem,asyoullseeinphase4.Yourgoalistofindthecoreofyoursystemarchitecturethatneedstobeimplementedinordergeneratearunningsystem,nomatterhowincompletethatsystemisinthisinitialpass.Yourecreatingaframeworkthatyoucanbuilduponwithfurtheriterations.Yourealsoperformingthefirstofmanysystemintegrationsandtests,andgivingthestakeholders10feedbackaboutwhattheirsystemwilllooklikeandhowitisprogressing.Ideally,youarealsoexposingsomeofthecriticalrisks.Youllprobablyalsodiscoverchangesandimprovementsthatcanbemadetoyouroriginalarchitecturethingsyouwouldnothavelearnedwithoutimplementingthesystem.Partofbuildingthesystemistherealitycheckthatyougetfromtestingagainstyourrequirementsanalysisandsystemspecification(inwhateverformtheyexist).Makesurethatyourtestsverifytherequirementsandusecases.Whentheco
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资阳市人才发展集团有限公司关于公开招聘资阳市数字化城市管理中心劳务派遣人员的备考题库含答案详解(黄金题型)
- 生态补水综合效益评估体系构建与实证研究
- 生态理念引领:广西师范大学美术学专业交叉课程的探索与实践
- 生态文明视域下杭州环保社会组织能力建设:现状、挑战与突破
- 2026广东佛山市南海区丹灶中心幼儿园招聘1人备考题库附答案详解(突破训练)
- 2026安徽滁州市凤阳县招聘凤进青年村级后备干部17人备考题库附答案详解(完整版)
- 生存迁移算法:基因调控网络重构的创新路径
- 2026宁夏天元锰业集团有限公司招聘239人备考题库及一套答案详解
- 2026年安庆桐城中学教师招聘备考题库附答案详解(培优)
- 2026四川泸州市雁林高级中学面向社会招聘备考题库及一套参考答案详解
- 【课件】历史的图谱(文化色彩)+课件高中美术人教版(2019)选择性必修1+绘画
- DB36-T 657-2023 棘胸蛙养殖技术规程
- 物料掩埋事故分析原因分析报告
- 某自来水厂施工组织设计完整方案
- 十年(14-23)高考物理真题分项汇编专题58 气体的等圧変化(含解析)
- 2023建筑结构弹塑性分析技术规程
- 110kv变电站设计外文翻译
- 2023年中考数学压轴题专题22 二次函数与新定义综合问题【含答案】
- 毛主席诗词(132首)
- SB-2100流量积算仪说明书
- 【毕业论文撰写】开题报告、文献综述、文献检索
评论
0/150
提交评论