已阅读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年净利润为负数写情况说明
- 新能源汽车保养与维修技术指南
- 天然气开发勘探承诺书7篇
- 2026年8月13日浙江省宁波市慈溪市公开招聘专职社区工作者笔试试题答案解析
- 2026年北京朝阳社区工作者招聘考试笔试试题(含答案)
- 2026年环境监察执法考试题及答案
- 公司生产经营环境改善承诺书8篇
- 基于个性的工作安排残疾人的职业康复与辅导
- 守秘工作落实成效承诺书8篇
- 销售团队绩效评估与管理指导书
- 2026年安庆医药高等专科学校单招职业技能考试题库带答案详解(a卷)
- 2026年安徽审计职业学院单招职业倾向性考试题库含答案详解(基础题)
- 斜坡硬化施工方案(3篇)
- 2026四川成都新都区集中招聘编外人员10考试备考题库及答案解析
- 2026银行间市场数据报告库(上海)股份有限公司招聘笔试模拟试题及答案解析
- 2026年郑州市检验检测有限公司公开招聘19人考试参考试题及答案解析
- 建筑施工安全设施设计落实情况报告
- 第1课 我们的生活越来越幸福 课件+视频-2025-2026学年道德与法治三年级下册统编版
- 学堂在线 雨课堂 学堂云 知识产权法 章节测试答案
- DB13∕T 5188-2020 地下管道非开挖铺设工程水平定向钻施工技术规程
- 能源的定义及分类(课堂PPT)
评论
0/150
提交评论