已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GB-T 40181-2021一次性卫生用非织造材料的可冲散性试验方法及评价》专题研究报告
- 油品储运工岗前技术规范考核试卷含答案
- 海藻饲料肥料制作工安全综合评优考核试卷含答案
- 《GBT 19211-2015 辐射型货物和(或)车辆检查系统》专题研究报告
- 单漂流送工安全规程测试考核试卷含答案
- 纺织品文物修复师创新应用模拟考核试卷含答案
- 社会体育指导员安全技能测试考核试卷含答案
- 《GBT 35419-2017 物联网标识体系 Ecode 在一维条码中的存储》专题研究报告
- 《GBT 2076-2021切削刀具用可转位刀片 型号表示规则》专题研究报告
- 磨毛(绒)机挡车工安全强化竞赛考核试卷含答案
- 猫瘟毕业论文3000字
- 睡眠呼吸暂停低通气综合征护理课件
- 2025年滨州市农发投资集团有限公司及权属公司公开招聘工作人员(第二批)(8名)考试笔试备考题库及答案解析
- 2026年陕西省选调生招录(面向陕西师范大学)历年真题库附答案解析(夺冠)
- 认识一次函数(第1课时)(导学案)(原卷版)
- 酒店折口布培训
- 2025疾控检验试题及答案
- 小学五年级家长会-主题班会
- 一年级数学上册数学绘本故事《鼓鼓和蛋蛋的梦想》课件-A3演示文稿设计与制作
- 人防工程施工单位自评报告10.17
- 景观生态学论文 嘉陵江流域污染现状及防治措施
评论
0/150
提交评论