




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机专业英语,6-1,ComputerEnglish,Chapter6SoftwareEngineering,计算机专业英语,6-2,掌握软件的生命周期的基本术语与知识;了解软件工程的发展趋势;了解软件设计方法;了解软件安全的有关知识;掌握复杂定语(从句)的翻译技巧。,Requirements:,计算机专业英语,6-3,NewWordsn.近似,途径conduciveadj.有助于.的evasiveadj.逃避的;回避的;推托的frameworkn.构架,框架,结构,计算机专业英语,6-4,NewWords统一体modulardesign标准设计,模块化设计object-oriented面向对象的stubn.树桩,桩模块givewayto让路,让步trial-and-errorn.试错,反复试验malfunctionn.故障,出错waterfallmodel瀑布模型analogyn.类似,类推afteralladv.毕竟starkadv.完全地trial-and-creative试验并创造的nonstructure非结构性intuitionn.直觉,直觉的知识contradictionn.反驳,矛盾incrementalmodel增量式模型updatev.修正,更新;n.更新stepwiseadj.楼梯式的,逐步的prototypen.原型evolutionaryprototyping演化式原型infavorofadv.赞同,有利于throwawayprototyping抛弃原型ironout消除;解决困难等documentationn.文件debuggingn.调试spreadsheetn.电子制表软件,电子数据表AbbreviationsCASE(computer-aidedsoftwareengineering)计算机辅助软件工程GUI(GraphicalUserInterfaces)图形用户界面,计算机专业英语,6-5,6.1TheSoftwareLifeCycle,6.1.1TheCycleasaWhole,Figure6-1Thesoftwarelifecycle,Themostfundamentalconceptinsoftwareengineeringisthesoftwarelifecycle.,软件生命周期是软件工程中最基本的概念。,计算机专业英语,6-6,6.1.1TheCycleasaWhole,ThesoftwarelifecycleisshowninFigure6-1.Thisfigurerepresentsthefactthatoncesoftwareisdeveloped,itentersacycleofbeingusedandmodifiedthatcontinuesfortherestofthesoftwareslife.Suchapatterniscommonformanymanufacturedproductsaswell.Thedifferenceisthat,inthecaseofotherproducts,themodificationphaseismoreaccuratelycalledarepairormaintenancephasebecauseotherproductstendtomovefrombeingusedtobeingmodifiedastheirpartsbecomeworn.,在图6-1中展示了软件的生命周期。这个图说明了一个事实:一旦软件开发完成,它就进入了使用和修改的循环,并且这个循环将在软件生命期的剩余时间中不断进行。这样的模式对机器制造的产品而言也是很普通的。不同之处在于,对于其他产品,软件工程中的修改阶段要被更精确地称作修理或者维护阶段,因为其他产品由于部件的磨损会有从使用到修改的过程。,计算机专业英语,6-7,6.1.1TheCycleasaWhole,Software,ontheotherhand,doesnotwearout.Instead,softwaremovesintothemodificationphasebecauseerrorsarediscovered,becausechangesinthesoftwaresapplicationoccurthatrequirecorrespondingchangesinthesoftware,orbecausechangesmadeduringapreviousmodificationarefoundtoinduceproblemselsewhereinthesoftware.Forexample,changesintaxlawsmayrequiremodificationstopayrollprogramsthatcalculatewithholdingtaxes,andalltoooftenthesechangesmayhaveadverseeffectsinotherareasoftheprogramthatmaynotbediscovereduntilsometimelater.,当然,软件不存在磨损的问题。但是,软件进入修改阶段或者是因为错误被发现,或者是因为要在软件的应用程序中进行修改从而修改了软件,或者是因为先前的改变又引起了软件其他地方出现了新的问题。例如,税务法案的改变导致对计算扣税的工资程序进行修改,而太频繁的修改则会在软件的其他地方引起反面的作用,而这些是不会被立即发现的。,计算机专业英语,6-8,6.1.1TheCycleasaWhole,Regardlessofwhysoftwareentersthemodificationphase,theprocessrequiresthataperson(oftennottheoriginalauthor)studytheunderlyingprogramanditsdocumentationuntiltheprogram,oratleastthepertinentpartoftheprogram,isunderstood.Otherwise,anymodificationcouldintroducemoreproblemsthanitsolves.Acquiringthisunderstandingcanbeadifficulttaskevenwhenthesoftwareiswell-designedanddocumented.Infact,itisoftenwithinthisphasethatapieceofsoftwareisfinallydiscardedunderthepretense(toooftentrue)thatitiseasiertodevelopanewsystemfromscratchthantomodifytheexistingpackagesuccessfully,不管因为什么原因软件进入了修改阶段,这个过程需要人们(通常不是原始的作者)研究程序及其文档,直到程序或者至少是相关部分的程序能够被理解。否则,任何的修改将导致比它所解决问题还要更多的问题出现。即使软件有优秀的设计和齐备的文档,理解也是一个很困难的工作。事实上,常常是在这个阶段,一个有用的软件片段最终就被放弃了(常常是这样),而开发一个新的系统比成功地修改现有软件更容易。,计算机专业英语,6-9,6.1.1TheCycleasaWhole,Experiencehasshownthatalittleeffortduringthedevelopmentofsoftwarecanmakeatremendousdifferencewhenmodificationsinthesoftwarearerequired.经验告诉我们,软件开发过程中的一丁点付出,会在软件需要修改的时候带来巨大的不同。,Inturn,mostoftheresearchinsoftwareengineeringfocusesonthedevelopmentstageofthesoftwarelifecycle,withthegoalbeingtotakeadvantageofthiseffort-versus-benefitleverage.反过来,大多数软件工程的研究都集中于软件生命周期的开发阶段,它们的目标是要利用这个付出与收益的杠杆作用。,计算机专业英语,6-10,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseThestageswithinthedevelopmentphaseofthesoftwarelifecycleareanalysis,design,implementation,andtesting(Figure6-2).,软件生命周期的开发阶段包括分析、设计、实现与测试等步骤(如图6-2所示)。,计算机专业英语,6-11,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseAnalysisThedevelopmentphaseofthesoftwarelifecyclebeginswithanalysis-amajorgoalbeingtoidentifytheneedsoftheuseroftheproposedsystem.Ifthesystemistobeagenericproductsoldinacompetitivemarket,thisanalysiswouldinvolveabroad-basedinvestigationtoidentifytheneedsofpotentialcustomers.If,however,thesystemistobedesignedforaspecificuser,thentheprocesswouldbeamorenarrowinvestigation.,分析软件生命周期的开发阶段以分析开始主要目标是确定用户对所提出系统的需求。如果系统是一个在竞争的市场上销售的通用产品,这个分析将会包括一个广泛的调查来发现潜在用户的需要。但是,如果系统是为特殊用户设计的,那么这个过程就是一个更专业的调查。,计算机专业英语,6-12,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseAstheneedsofthepotentialuserareidentified,theyarecompiledtoformasetofrequirementsthatthenewsystemmustsatisfy.Theserequirementsarestatedintermsoftheapplicationratherthaninthetechnicalterminologyofthedataprocessingcommunity.Onerequirementmightbethataccesstodatamustberestrictedtoauthorizedpersonnel.Anothermightbethatthedatamustreflectthecurrentstateoftheinventoryasoftheendofthelastbusinessdayorthatthearrangementofthedataasdisplayedonthecomputerscreenmustadheretotheformatofthepaperformscurrentlyinuse.,当潜在用户的要求被确定之后,要将这些要求汇编成新系统必须满足的需求。这些需求是从应用的角度来表述,而不是用数据处理界的技术术语来表达。一种需求可能是对数据的存取必须限制在有权限的人员,另一种可能是当一个工作日结束时,数据必须反映目前的清单状态,或者可能是在计算机屏幕上的数据必须按照用户目前使用的格式来显示。,计算机专业英语,6-13,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseAfterthesystemrequirementsareidentified,theyareconvertedintomoretechnicalsystemspecifications.Forexample,therequirementthatdataberestrictedtoauthorizedpersonnelmightbecomethespecificationthatthesystemwillnotresponduntilanapprovedeight-digitpasswordhasbeentypedatthekeyboardorthatdatawillbedisplayedinencryptedformunlesspreprocessedbyaroutineknownonlytoauthorizedpersonnel.,系统的需求被确定以后,它们就转化为更具技术性的说明书。例如,关于数据须限制在某些有权限的人的需求,就可能转化为以下规范直到从键盘输入一个被认可的8位密码,系统才开始响应,或者除非经过只有授权的人才知道的例程预处理,否则数据将以加密的形式显示在屏幕上。,计算机专业英语,6-14,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseDesignWhereasanalysisconcentratesonwhattheproposedsystemshoulddo,designconcentratesonhowthesystemwillaccomplishthosegoals.Itisherethatthestructureofthesoftwaresystemisestablished.,设计分析关注这个系统应该做什么,而设计关注这个系统应该怎样来实现目标。正是通过设计建立了软件系统的结构。,计算机专业英语,6-15,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseItisawell-establishedprinciplethatthebeststructureforalargesoftwaresystemisamodularone.Indeed,itisbymeansofthismodulardecompositionthattheimplementationoflargesystemsbecomesapossibility.Withoutsuchabreakdown,thetechnicaldetailsrequiredintheimplementationofalargesystemwouldexceedahumanscomprehensivepowers.,大型软件系统最好的结构是模块化系统,这是一条被充分证实的原则。确实,正是借助模块化的分解方法,大型系统的实现才成为可能。没有这样的分解,在大型系统实现过程中所需要的技术细节可能会超过一个人的理解能力。,计算机专业英语,6-16,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseWithamodulardesign,however,onlythedetailspertainingtothemoduleunderconsiderationneedbemastered.Thissamemodulardesignisalsoconducivetofuturemaintenancebecauseitallowschangestobemadeonamodularbasis.(Ifachangeistobemadetothewayeachemployeeshealthbenefitsarecalculated,thenonlymodulesdealingwithhealthbenefitsneedbeconsidered.),然而,有了这种模块化设计,仅仅需要熟悉与在考虑中的模块相关的细节。同样,模块化设计对未来的维护是有益的,因为它允许对基本的模块进行修改。(如果要对每个雇员的医疗福利计算方法进行修改,那么仅仅需要考虑处理医疗福利模块。),计算机专业英语,6-17,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseThereare,however,distinctionsregardingtheconceptofamodule.Ifoneapproachesthedesigntaskintermsofthetraditionalimperativeparadigm,modulesconsistofproceduresandthedevelopmentofamodulardesigntakestheformofidentifyingthevarioustasksthattheproposedsystemmustperform.Incontrast,ifoneapproachesthedesigntaskfromtheobject-orientedperspective,modulesareseenasobjectsandthedesignprocessbecomesthatofidentifyingtheentities(objects)intheproposedsystemaswellashowtheseentitiesshouldbehave.,但是,有关模块的概念也是有差别的。如果一个人以传统的命令式语言范式的方法来进行设计工作,模块由不同程序组成,而模块化设计则以确定有待实现系统的不同任务的方式进行。相反地,如果一个人从面向对象的角度来完成设计工作,模块就被看成了对象,而设计过程变成了确定有待实现系统中的实体(对象)以及确定这些实体是如何工作的。,计算机专业英语,6-18,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseImplementationImplementationinvolvestheactualwritingofprograms,creationofdatafiles,anddevelopmentofdatabases.,实现实现包括程序的实际编写、数据文件的建立以及数据库的开发等过程。,计算机专业英语,6-19,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseTestingTestingiscloselyassociatedwithimplementation,becauseeachmoduleofthesystemisnormallytestedasitisimplemented.Indeed,eachmoduleinawell-designedsystemcanbetestedindependentlyoftheothermodulesbyusingsimplifiedversionsoftheothermodules,calledstubs,tosimulatetheinteractionbetweenthetargetmoduleandtherestofthesystem.Ofcourse,thistestingofcomponentsgiveswaytooverallsystemtestingasthevariousmodulesarecompletedandcombined.,测试测试与实现紧密联系,因为系统中的每一个模块都要在实现的过程中进行正常测试。确实,通过使用其他模块的简化版本有时称为桩模块,来模拟目标模块和系统其他部分的交互,从而使设计良好的系统中的每一个模块都可以被独立地测试。当然,在各种模块都开发完成并且整合在一起之后,这个组件的测试将让路给整个系统的测试。,计算机专业英语,6-20,6.1.1TheCycleasaWhole,TheTraditionalDevelopmentPhaseUnfortunately,thetestinganddebuggingofasystemisextremelydifficulttoperformsuccessfully.Experiencehasshownthatlargesoftwaresystemscancontainnumerouserrors,evenaftersignificanttesting.Manyoftheseerrorsmaygoundetectedforthelifeofthesystem,butothersmaycausemajormalfunctions.Theeliminationofsucherrorsisoneofthegoalsofsoftwareengineering.Thefactthattheyarestillprevalentmeansthatalotofresearchremainstobedone.,不幸的是,成功地进行系统的测试和调试是极其困难的。经验表明,大型的软件系统可能包含众多的错误,甚至是经过关键测试之后。许多这样的错误在软件的生命期中一直潜伏着,但是也有一些会导致关键性的错误。减少这样的错误是软件工程的一个目标。这些错误的普遍存在说明了在这方面还有许多的研究工作要做。,计算机专业英语,6-21,6.1.1TheCycleasaWhole,RecentTrendsEarlyapproachestosoftwareengineeringinsistedonperforminganalysis,design,implementation,andtestinginastrictlysequentialmanner.Thefeelingwasthattoomuchwasatriskduringthedevelopmentofalargesoftwaresystemtoallowfortrial-and-errortechniques.,软件工程的早期方法坚持要严格地遵守分析、设计、实现以及测试的顺序。在大型软件系统的开发过程中,感觉到采用试错法是在冒着很大的风险进行开发的。,计算机专业英语,6-22,6.1.1TheCycleasaWhole,RecentTrendsAsaresult,softwareengineersinsistedthattheentireanalysisofthesystembecompletedbeforebeginningthedesignand,likewise,thatthedesignbecompletedbeforebeginningimplementation.Theresultwasadevelopmentprocessnowreferredtoasthewaterfallmodel,ananalogytothefactthatthedevelopmentprocesswasallowedtoflowinonlyonedirection.,因此,软件工程师坚持应当在设计之前进行完整的系统分析,同样,设计应该在实现之前完成。这就形成了一个现在称为瀑布模型的开发过程,这是对开发过程只允许以一个方向进行的事实的模拟。,计算机专业英语,6-23,6.1.1TheCycleasaWhole,RecentTrendsYouwillnoticeasimilaritybetweenthefourproblem-solvingphasesidentifiedbyPolyaandtheanalysis,design,implementation,andtestingphasesofsoftwaredevelopment.Afterall,todevelopalargesoftwaresystemistosolveaproblem.,你将注意到由Polya提出的解决问题的4个阶段与软件开发的分析、设计、实现和测试阶段的类似性。毕竟,开发一个大型的软件系统是去解决一个问题。,计算机专业英语,6-24,6.1.1TheCycleasaWhole,RecentTrendsOntheotherhand,thetraditionalwaterfallapproachtosoftwaredevelopmentisinstarkcontrasttothefree-wheeling,trial-and-creativeproblemsolving.Whereasthewaterfallapproachseekstoestablishahighlystructuredenvironmentinwhichdevelopmentprogressesinasequentialfashion,creativeproblemsolvingseeksanonstructuredenvironmentinwhichonecandroppreviousplansofattacktopursuesparksofintuitionwithoutexplainingwhy.,另一方面,传统软件开发的瀑布模型法与随心所欲的反复试验并创造性地解决问题的方法是完全相反的。瀑布模型法寻求建立一个高度结构化的环境,希望在这个环境中的开发可以顺利地进行,而创造性的问题解决要寻找一个非结构化的环境,希望在这个环境中可以抛弃先前的计划,来追逐思维的火花,而不用解释为什么。,计算机专业英语,6-25,6.1.1TheCycleasaWhole,RecentTrendsInrecentyears,softwareengineeringtechniqueshavebeguntoreflectthisunderlyingcontradictionasillustratedbytheemergenceoftheincrementalmodelforsoftwaredevelopment.Followingthismodel,thedesiredsoftwaresystemisconstructedinincrements-thefirstbeingasimplifiedversionofthefinalproductwithlimitedfunctionality.,近年来,软件工程技术已经开始反映这种本质的对立了,这可以由软件开发中出现的增量式模型来说明。根据这个模型,所需的软件系统是通过增量模式来构造的首先开发最终产品的简化版本,它只有有限的功能。,计算机专业英语,6-26,6.1.1TheCycleasaWhole,RecentTrendsOncethisversionhasbeentestedandperhapsevaluatedbythefutureuser,morefeaturesareaddedandtestedinanincrementalmanneruntilthesystemiscomplete.Forexample,ifthesystembeingdevelopedisastudentrecordssystemforauniversityregister,thefirstincrementmayincorporateonlytheabilitytoviewstudentrecords.Oncethatversionisoperational,additionalfeatures,suchastheabilitytoaddandupdaterecords,wouldbeaddedinastepwisemanner.,一旦这个版本经过测试、并且也许经过了未来用户的评估,更多的特性就可以添加进去并且进行测试,这样就以一种增量的方式进行,直到完成系统。例如,如果正在开发的系统是为大学登记员设计的学生记录系统,第一次迭代版本仅仅包括浏览学生记录的功能。一旦这个版本可以运行了,其他特性,诸如增加和更新记录的功能,就可以分阶段地添加到系统中了。,计算机专业英语,6-27,6.1.1TheCycleasaWhole,RecentTrendsTheincrementalmodelisevidenceofthetrendinsoftwaredevelopmenttowardprototypinginwhichincompleteversionsoftheproposedsystem,calledprototypes,arebuiltandevaluated.Inthecaseoftheincrementalmodeltheseprototypesevolveintothecomplete,finalsystem-aprocessknownasevolutionaryprototyping.Inothercases,theprototypesmaybediscardedinfavorofafreshimplementationofthefinaldesign.Thisapproachisknownasthrowawayprototyping.,这种增量式模型是软件开发向原型法发展趋势的一个证据在这种方法中,建立并测试的是不完善系统,它也被称为原型,被评估和测试。在增量式模型中,这些原型进化为一个完整的最终系统这个过程称为演化式原型。对于其他情况,原型的抛弃会有利于新的最终设计的实现,这种方法就是抛弃原型。,计算机专业英语,6-28,6.1.1TheCycleasaWhole,RecentTrendsAnexamplethatnormallyfallswithinthisthrowawaycategoryisrapidprototypinginwhichasimpleexampleoftheproposedsystemisquicklyconstructedintheearlystagesofdevelopment.Suchaprototypemayconsistofonlyafewscreenimagesthatgiveanindicationofhowthesystemwillinteractwiththeuserandwhatcapabilitiesitwillhave.,一个抛弃原型的例子就是快速原型法,在这个方法中,系统的简单版本在开发的早期就被很快搭建起来。这样的原型也许仅仅包含少量界面图片来展示系统怎样与用户交互以及它将具有的功能。,计算机专业英语,6-29,6.1.1TheCycleasaWhole,RecentTrendsThegoalisnottoproduceaworkingversionoftheproductbuttoobtainademonstrationtoolthatcanbeusedtoclarifycommunicationbetweenthepartiesinvolved.Forexample,rapidprototypeshaveprovedadvantageousinironingoutsystemrequirementsduringtheanalysisstageorasaidsduringsalespresentationstopotentialclients.,我们的目标不是制作产品的有效版本,而是获得一个示范工具,以便阐明有关方面之间的沟通。例如,在分析阶段解决系统的需求问题,或在销售阶段作为向潜在客户演示的辅助,快速原型具有很大的优势,计算机专业英语,6-30,6.1.1TheCycleasaWhole,RecentTrendsAnotherdevelopmentinsoftwareengineeringhasbeentheapplicationofcomputertechnologytothesoftwaredevelopmentprocessitself,resultinginwhatiscalledcomputer-aidedsoftwareengineering(CASE).,软件工程领域中另一个发展是计算机技术在软件开发过程本身的应用,这导致了称为计算机辅助软件工程(CASE)的出现。,计算机专业英语,6-31,6.1.1TheCycleasaWhole,RecentTrendsThesecomputerizedsystemsareknownasCASEtoolsandincludeprojectplanningtools(thatassistincostestimation,projectscheduling,andpersonnelallocation),projectmanagementtools(thatassistinmonitoringtheprogressofthedevelopmentproject),documentationtools(thatartistinwritingandorganizingdocumentation),prototypingandsimulationtools(thatassistinthedevelopmentofprototypes),interfacedesigntools(thatassistinthedevelopmentofGUIs),andprogrammingtools(thatassistinwritinganddebuggingprograms).,这些计算机化系统就是知名的CASE工具,且包括项目计划工具(帮助成本估计、项目调度,以及人力资源分配)、项目管理工具(帮助管理开发项目的进程)、文档工具(帮助撰写和组织文档)、界面设计工具(帮助开发GUI)以及程序设计工具(帮助编写和调试程序)。,计算机专业英语,6-32,6.1.1TheCycleasaWhole,RecentTrendsSomeofthesetoolsarelittlemorethanthewordprocessors,spreadsheetsystems,ande-mailcommunicationsystemsusedinotherapplications.However,othersarequitesophisticatedpackagesdesignedprimarilyforthesoftwareengineeringenvironment.Forexample,someCASEtoolsincludecodegeneratorsthat,whengivenspecificationsforapartofasystem,producehigh-levellanguageprogramsthatimplementthatpartofthesystem.,这些工具也许仅仅就是在其他的应用程序中的文字处理软件,或者是表格处理软件,或者是电子邮件通讯系统。一些则是相当复杂的软件,它们主要是为了软件工程环境来设计的。例如,一些CASE工具包括了代码生成器,当给出一个系统局部的说明书时,它可用来生成实现这个系统局部的高级语言程序。,计算机专业英语,6-33,6.2DesignMethodologies,Thedevelopmentofmethodologiesfordesigningsoftwaresystemsisamajorquestwithinsoftwareengineering.Inthissectionwediscussavarietyofthetechniquesthathavebeendevelopedaswellasdirectionsofcurrentresearch.,设计软件系统的方法学是软件工程领域主要探索的方向之一。本节我们将讨论一些已经形成的方法以及当前的研究方向。,计算机专业英语,6-34,6.2.1Top-DownVersusBottom-Up,Perhapsthemostwell-knownstrategyassociatedwithsystemdesignisthetop-downmethodology.Thepointofthismethodologyisthatoneshouldnottrytosolveacomplexprobleminasinglestep.Instead,onesfirststopshouldbetobreaktheproblemintosmaller,moremanageablesubproblems.Then,oneshouldproceedbybreakingthesesubproblemsintostillsmallerproblems.Inthismanner,acomplexproblembecomesacollectionofsimplerproblemswhosesolutionscollectivelysolvetheoriginalproblem.,也许最著名的系统设计策略就是自顶向下的方法学了。这个方法学的要点就是人们不要试图一下子就将一个复杂问题解决,而是应当将问题分解成更小的、可以管理的子问题。然后,将这些子问题分解成更小的问题。以这种方式,一个复杂的问题变成了相对小的问题的集合,而所有小问题的解决就是原问题的解决。,计算机专业英语,6-35,6.2.1Top-DownVersusBottom-Up,Theresultoftopdowndesigntendstobeahierarchicalsystemofrefinementsthatoftencanbetranslateddirectlyintoamodularstructurethatiscompatiblewiththeimperativeprogrammingparadigm.Thesolutionstothesmallestproblemsinthehierarchybecomeproceduralmodulesthatperformsimpletasksandareusedasabstracttoolsbymoresuperiormodulestosolvethemorecomplexproblemsinthesystem.,自顶向下设计的结果是一个逐步求精的层次系统,这个结构通常可以被直接翻译成与命令式语言兼容的模块结构。对层次结构中最小问题的解决变成了执行简单任务的程序模块,这个模块被较高层用作抽象工具来解决系统中更为复杂的问题。,计算机专业英语,6-36,6.2.1Top-DownVersusBottom-Up,Incontrasttothetop-downdesignmethodologyisthebottom-upapproach,inwhichonestartsthedesignofasystembyidentifyingindividualtaskswithinthesystemandthenconsidershowsolutionstothesetaskscanbeusedasabstracttoolsinthesolutiontomorecomplexproblems.Formanyyears,thisapproachwasconsideredinferiortothetopdowndesignparadigm.,相对于自顶向下的设计方法学,自底向上的方法确定系统中的每一个具体任务来开始系统的设计。然后,它考虑如何将这些任务的解决用做解决更复杂问题的抽象工具。多年来,这个方法被认为不如自顶向下的设计范式。,计算机专业英语,6-37,6.2.1Top-DownVersusBottom-Up,Today,however,thebottom-upmethodologyhasgainedsupport.Onereasonforthisshiftisthatthetop-downmethodologyseeksasolutioninwhichadominantmoduleusessubmodules,eachofwhichreliesonsubsubmodules,andsoon.,但是,今天,自底向上的方法学又获得了支持。这种转变的一个原因就是自顶向下的方法寻求一个支配模块使用子模快,而每一个支配模块依赖于子模块的解决,等等。,计算机专业英语,6-38,6.2.1Top-DownVersusBottom-Up,However,thebestdesignformanysystemsisnotofahierarchicalnature.Indeed,adesignconsistingoftwoormoremodulesinteractingasequals,asexemplifiedbytheclient-servermodelaswellasgeneralparallelprocessingapplications,maybeabettersolutionthanadesignconsistingofasuperiormodulethatreliesonsubordinatestoperformitstask.,但是,对于许多系统来说,最好的设计不是一个层次的结构。确实,一个设计包括两个或更多模块它们平等交互,这也是被包含通用并行处理应用程序的客户/服务器模型或者系统所例证了的,比起依赖于从属模块来执行任务的较高级模块构成的设计,它也许是一个更好的解决方案。,计算机专业英语,6-39,6.2.1Top-DownVersusBottom-Up,Anotherreasonforincreasedinterestinbottom-updesignisthatitismoreconsistentwiththegoalofbuildingcomplexsoftwaresystemsfrompreconstructed,off-the-shelfcomponents-anapproachthatisacurrenttrendinsoft-wareengineering.,对自底向上设计产生更多兴趣的另一个原因,就是它与从预先构建的现成组件中构建复杂软件系统的目标更加一致这体现了软件工程当前的趋势。,计算机专业英语,6-40,6.2.2DesignPatterns,Inanefforttofindwaysbywhichsoftwarecanbeconstructedfromoff-the-shelfcomponents,softwareengineershaveturnedtothefieldofarchitectureforinspiration.OfparticularinterestisthebookAPat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年B2B电子商务项目合作计划书
- 生命至上安全发展漫画
- 农村建房安全施工培训
- 黔南州2024-2025学年度第一学期期末质量监测 数学答案
- 寒假安全知识知多少
- 美术绘画创收项目策划与实施
- 淘宝客服沟通技巧培训
- 高级审计师考生所需文献及试题及答案
- 高级审计师学习路径规划试题及答案
- 自主学习在护理中的应用试题及答案
- 先天性肠旋转不良疾病演示课件
- 广西陆上风电项目规划清单
- 考试工作先进个人事迹
- 反假货币培训
- 《延年益寿养生方法》课件
- 《全的针灸方法》课件
- 纸箱采购投标方案(技术方案)
- 涉气施工应急预案
- 仪 器 设 备 购 置 申 请 表
- 外科学(2)智慧树知到课后章节答案2023年下温州医科大学
- 12 黑板报(教案) 赣美版美术三年级下册
评论
0/150
提交评论