




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ComputerEnglishChapter6SoftwareEngineering6-1计算机专业英语计算机专业英语》电子教案第6章共51页,您现在浏览的是第1页!掌握软件的生命周期的基本术语与知识;了解软件工程的发展趋势;了解软件设计方法;了解软件安全的有关知识;掌握复杂定语(从句)的翻译技巧。Requirements:2计算机专业英语》电子教案第6章共51页,您现在浏览的是第2页!NewWords&Expressions
manufacturedproducts工业产品 lieun.场所softwarelifecycle软件生命周期 versusprep.与...相对nondescriptiveadj.非描述性的 munityn.团体,社会authorizedadj.权威认可的,经授权的 leveragen.杠杆作用genericadj.一般的,普通的 potentialadj.潜在的,可能的intermsofadv.根据,按照,用...的话 terminologyn.术语学personneln.人员,职员 inventoryn.详细目录,财产清册adheretov.粘附,粘着,坚持,追随 passwordn.密码,口令specificationn.详述,说明书,规范 encryptv.加密,将...译成密码preprocessvt.预加工,预处理 routinen.程序modularadj.模块的,有标准组件的 well-established充分证实的depositionn.分解 breakdownn.分解,故障pertainingto与...有关的 maintenancen.维护,保持imperativeadj.强制性的,命令式 paradigmn.范例,模式approachvt.接近,解决;n.近似,途径 conduciveadj.有助于...的evasiveadj.逃避的;回避的;推托的 frameworkn.构架,框架,结构3计算机专业英语》电子教案第6章共51页,您现在浏览的是第3页!NewWords&Expressions
taketheformof采取...形式 entityn.实体;统一体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(puter-aidedsoftwareengineering)计算机辅助软件工程GUI(GraphicalUserInterfaces)图形用户界面4计算机专业英语》电子教案第6章共51页,您现在浏览的是第4页!6.1.1TheCycleasaWholeThesoftwarelifecycleisshowninFigure6-1.Thisfigurerepresentsthefactthatoncesoftwareisdeveloped,itentersacycleofbeingusedandmodifiedthatcontinuesfortherestofthesoftware'slife.Suchapatternismonformanymanufacturedproductsaswell.Thedifferenceisthat,inthecaseofotherproducts,themodificationphaseismoreaccuratelycalledarepairormaintenancephasebecauseotherproductstendtomovefrombeingusedtobeingmodifiedastheirpartsbeeworn.在图6-1中展示了软件的生命周期。这个图说明了一个事实:一旦软件开发完成,它就进入了使用和修改的循环,并且这个循环将在软件生命期的剩余时间中不断进行。这样的模式对机器制造的产品而言也是很普通的。不同之处在于,对于其他产品,软件工程中的修改阶段要被更精确地称作修理或者维护阶段,因为其他产品由于部件的磨损会有从使用到修改的过程。5计算机专业英语》电子教案第6章共51页,您现在浏览的是第5页!6.1.1TheCycleasaWholeRegardlessofwhysoftwareentersthemodificationphase,theprocessrequiresthataperson(oftennottheoriginalauthor)studytheunderlyingprogramanditsdocumentationuntiltheprogram,oratleastthepertinentpartoftheprogram,isunderstood.Otherwise,anymodificationcouldintroducemoreproblemsthanitsolves.Acquiringthisunderstandingcanbeadifficulttaskevenwhenthesoftwareiswell-designedanddocumented.Infact,itisoftenwithinthisphasethatapieceofsoftwareisfinallydiscardedunderthepretense(toooftentrue)thatitiseasiertodevelopanewsystemfromscratchthantomodifytheexistingpackagesuccessfully不管因为什么原因软件进入了修改阶段,这个过程需要人们(通常不是原始的作者)研究程序及其文档,直到程序或者至少是相关部分的程序能够被理解。否则,任何的修改将导致比它所解决问题还要更多的问题出现。即使软件有优秀的设计和齐备的文档,理解也是一个很困难的工作。事实上,常常是在这个阶段,一个有用的软件片段最终就被放弃了(常常是这样),而开发一个新的系统比成功地修改现有软件更容易。6计算机专业英语》电子教案第6章共51页,您现在浏览的是第6页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseThestageswithinthedevelopmentphaseofthesoftwarelifecycleareanalysis,design,implementation,andtesting(Figure6-2).软件生命周期的开发阶段包括分析、设计、实现与测试等步骤(如图6-2所示)。7计算机专业英语》电子教案第6章共51页,您现在浏览的是第7页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseAstheneedsofthepotentialuserareidentified,theyarepiledtoformasetofrequirementsthatthenewsystemmustsatisfy.Theserequirementsarestatedintermsoftheapplicationratherthaninthetechnicalterminologyofthedataprocessingmunity.Onerequirementmightbethataccesstodatamustberestrictedtoauthorizedpersonnel.Anothermightbethatthedatamustreflectthecurrentstateoftheinventoryasoftheendofthelastbusinessdayorthatthearrangementofthedataasdisplayedontheputerscreenmustadheretotheformatofthepaperformscurrentlyinuse.当潜在用户的要求被确定之后,要将这些要求汇编成新系统必须满足的需求。这些需求是从应用的角度来表述,而不是用数据处理界的技术术语来表达。一种需求可能是对数据的存取必须限制在有权限的人员,另一种可能是当一个工作日结束时,数据必须反映目前的清单状态,或者可能是在计算机屏幕上的数据必须按照用户目前使用的格式来显示。8计算机专业英语》电子教案第6章共51页,您现在浏览的是第8页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseDesignWhereasanalysisconcentratesonwhattheproposedsystemshoulddo,designconcentratesonhowthesystemwillacplishthosegoals.Itisherethatthestructureofthesoftwaresystemisestablished.
设计
分析关注这个系统应该做什么,而设计关注这个系统应该怎样来实现目标。正是通过设计建立了软件系统的结构。9计算机专业英语》电子教案第6章共51页,您现在浏览的是第9页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseWithamodulardesign,however,onlythedetailspertainingtothemoduleunderconsiderationneedbemastered.Thissamemodulardesignisalsoconducivetofuturemaintenancebecauseitallowschangestobemadeonamodularbasis.(Ifachangeistobemadetothewayeachemployee'shealthbenefitsarecalculated,thenonlymodulesdealingwithhealthbenefitsneedbeconsidered.)然而,有了这种模块化设计,仅仅需要熟悉与在考虑中的模块相关的细节。同样,模块化设计对未来的维护是有益的,因为它允许对基本的模块进行修改。(如果要对每个雇员的医疗福利计算方法进行修改,那么仅仅需要考虑处理医疗福利模块。)10计算机专业英语》电子教案第6章共51页,您现在浏览的是第10页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseImplementationImplementationinvolvestheactualwritingofprograms,creationofdatafiles,anddevelopmentofdatabases.
实现实现包括程序的实际编写、数据文件的建立以及数据库的开发等过程。11计算机专业英语》电子教案第6章共51页,您现在浏览的是第11页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseUnfortunately,thetestinganddebuggingofasystemisextremelydifficulttoperformsuccessfully.Experiencehasshownthatlargesoftwaresystemscancontainnumerouserrors,evenaftersignificanttesting.Manyoftheseerrorsmaygoundetectedforthelifeofthesystem,butothersmaycausemajormalfunctions.Theeliminationofsucherrorsisoneofthegoalsofsoftwareengineering.Thefactthattheyarestillprevalentmeansthatalotofresearchremainstobedone.不幸的是,成功地进行系统的测试和调试是极其困难的。经验表明,大型的软件系统可能包含众多的错误,甚至是经过关键测试之后。许多这样的错误在软件的生命期中一直潜伏着,但是也有一些会导致关键性的错误。减少这样的错误是软件工程的一个目标。这些错误的普遍存在说明了在这方面还有许多的研究工作要做。12计算机专业英语》电子教案第6章共51页,您现在浏览的是第12页!6.1.1TheCycleasaWholeRecentTrendsAsaresult,softwareengineersinsistedthattheentireanalysisofthesystembepletedbeforebeginningthedesignand,likewise,thatthedesignbepletedbeforebeginningimplementation.Theresultwasadevelopmentprocessnowreferredtoasthewaterfallmodel,ananalogytothefactthatthedevelopmentprocesswasallowedtoflowinonlyonedirection.因此,软件工程师坚持应当在设计之前进行完整的系统分析,同样,设计应该在实现之前完成。这就形成了一个现在称为瀑布模型的开发过程,这是对开发过程只允许以一个方向进行的事实的模拟。13计算机专业英语》电子教案第6章共51页,您现在浏览的是第13页!6.1.1TheCycleasaWholeRecentTrendsOntheotherhand,thetraditionalwaterfallapproachtosoftwaredevelopmentisinstarkcontrasttothe"free-wheeling,"trial-and-creativeproblemsolving.Whereasthewaterfallapproachseekstoestablishahighlystructuredenvironmentinwhichdevelopmentprogressesinasequentialfashion,creativeproblemsolvingseeksanonstructuredenvironmentinwhichonecandroppreviousplansofattacktopursuesparksofintuitionwithoutexplainingwhy.
另一方面,传统软件开发的瀑布模型法与随心所欲的反复试验并创造性地解决问题的方法是完全相反的。瀑布模型法寻求建立一个高度结构化的环境,希望在这个环境中的开发可以顺利地进行,而创造性的问题解决要寻找一个非结构化的环境,希望在这个环境中可以抛弃先前的计划,来追逐思维的火花,而不用解释为什么。14计算机专业英语》电子教案第6章共51页,您现在浏览的是第14页!6.1.1TheCycleasaWholeRecentTrendsOncethisversionhasbeentestedandperhapsevaluatedbythefutureuser,morefeaturesareaddedandtestedinanincrementalmanneruntilthesystemisplete.Forexample,ifthesystembeingdevelopedisastudentrecordssystemforauniversityregister,thefirstincrementmayincorporateonlytheabilitytoviewstudentrecords.Oncethatversionisoperational,additionalfeatures,suchastheabilitytoaddandupdaterecords,wouldbeaddedinastepwisemanner.一旦这个版本经过测试、并且也许经过了未来用户的评估,更多的特性就可以添加进去并且进行测试,这样就以一种增量的方式进行,直到完成系统。例如,如果正在开发的系统是为大学登记员设计的学生记录系统,次迭代版本仅仅包括浏览学生记录的功能。一旦这个版本可以运行了,其他特性,诸如增加和更新记录的功能,就可以分阶段地添加到系统中了。15计算机专业英语》电子教案第6章共51页,您现在浏览的是第15页!6.1.1TheCycleasaWholeRecentTrendsAnexamplethatnormallyfallswithinthisthrowawaycategoryisrapidprototypinginwhichasimpleexampleoftheproposedsystemisquicklyconstructedintheearlystagesofdevelopment.Suchaprototypemayconsistofonlyafewscreenimagesthatgiveanindicationofhowthesystemwillinteractwiththeuserandwhatcapabilitiesitwillhave.一个抛弃原型的例子就是快速原型法,在这个方法中,系统的简单版本在开发的早期就被很快搭建起来。这样的原型也许仅仅包含少量界面图片来展示系统怎样与用户交互以及它将具有的功能。16计算机专业英语》电子教案第6章共51页,您现在浏览的是第16页!6.1.1TheCycleasaWholeRecentTrendsAnotherdevelopmentinsoftwareengineeringhasbeentheapplicationofputertechnologytothesoftwaredevelopmentprocessitself,resultinginwhatiscalledputer-aidedsoftwareengineering(CASE).软件工程领域中另一个发展是计算机技术在软件开发过程本身的应用,这导致了称为计算机辅助软件工程(CASE)的出现。17计算机专业英语》电子教案第6章共51页,您现在浏览的是第17页!6.1.1TheCycleasaWholeRecentTrendsSomeofthesetoolsarelittlemorethanthewordprocessors,spreadsheetsystems,ande-mailmunicationsystemsusedinotherapplications.However,othersarequitesophisticatedpackagesdesignedprimarilyforthesoftwareengineeringenvironment.Forexample,someCASEtoolsincludecodegeneratorsthat,whengivenspecificationsforapartofasystem,producehigh-levellanguageprogramsthatimplementthatpartofthesystem.这些工具也许仅仅就是在其他的应用程序中的文字处理软件,或者是表格处理软件,或者是电子邮件通讯系统。一些则是相当复杂的软件,它们主要是为了软件工程环境来设计的。例如,一些CASE工具包括了代码生成器,当给出一个系统局部的说明书时,它可用来生成实现这个系统局部的高级语言程序。18计算机专业英语》电子教案第6章共51页,您现在浏览的是第18页!6.2.1Top-DownVersusBottom-Up
Perhapsthemostwell-knownstrategyassociatedwithsystemdesignisthetop-downmethodology.Thepointofthismethodologyisthatoneshouldnottrytosolveaplexprobleminasinglestep.Instead,one'sfirststopshouldbetobreaktheproblemintosmaller,moremanageablesubproblems.Then,oneshouldproceedbybreakingthesesubproblemsintostillsmallerproblems.Inthismanner,aplexproblembeesacollectionofsimplerproblemswhosesolutionscollectivelysolvetheoriginalproblem.也许最著名的系统设计策略就是自顶向下的方法学了。这个方法学的要点就是人们不要试图一下子就将一个复杂问题解决,而是应当将问题分解成更小的、可以管理的子问题。然后,将这些子问题分解成更小的问题。以这种方式,一个复杂的问题变成了相对小的问题的集合,而所有小问题的解决就是原问题的解决。
19计算机专业英语》电子教案第6章共51页,您现在浏览的是第19页!6.2.1Top-DownVersusBottom-Up
Incontrasttothetop-downdesignmethodologyisthebottom-upapproach,inwhichonestartsthedesignofasystembyidentifyingindividualtaskswithinthesystemandthenconsidershowsolutionstothesetaskscanbeusedasabstracttoolsinthesolutiontomoreplexproblems.Formanyyears,thisapproachwasconsideredinferiortothetopdowndesignparadigm.相对于自顶向下的设计方法学,自底向上的方法确定系统中的每一个具体任务来开始系统的设计。然后,它考虑如何将这些任务的解决用做解决更复杂问题的抽象工具。多年来,这个方法被认为不如自顶向下的设计范式。20计算机专业英语》电子教案第6章共51页,您现在浏览的是第20页!6.2.1Top-DownVersusBottom-Up
However,thebestdesignformanysystemsisnotofahierarchicalnature.Indeed,adesignconsistingoftwoormoremodulesinteractingasequals,asexemplifiedbytheclient-servermodelaswellasgeneralparallelprocessingapplications,maybeabettersolutionthanadesignconsistingofasuperiormodulethatreliesonsubordinatestoperformitstask.但是,对于许多系统来说,最好的设计不是一个层次的结构。确实,一个设计包括两个或更多模块——它们平等交互,这也是被包含通用并行处理应用程序的客户/服务器模型或者系统所例证了的,比起依赖于从属模块来执行任务的较高级模块构成的设计,它也许是一个更好的解决方案。21计算机专业英语》电子教案第6章共51页,您现在浏览的是第21页!6.2.2DesignPatterns
Inanefforttofindwaysbywhichsoftwarecanbeconstructedfromoff-the-shelfponents,softwareengineershaveturnedtothefieldofarchitectureforinspiration.OfparticularinterestisthebookAPatternLanguagebyChristopherAlexanderetal.,whichdescribesasetofpatternsfordesigningmunities.每种模式都包括了一个问题描述以及建议性的解决方案。这些问题是很普遍的,而这个建议性的解决方案也是一般性的——旨在强调他们阐述的是问题的一般的本质而不是仅仅为一个特殊的例子提出一个解决方案。22计算机专业英语》电子教案第6章共51页,您现在浏览的是第22页!6.2.2DesignPatterns
Forexample,onepattern,calledQuietBacks,addressestheneedtoescapethemotionofabusinesscenterforshortperiodsofrefreshment.Theproposedsolutionistodesign"quietbacks"intobusinessdistricts.Insomecases,thedistrictcouldbedesignedaroundamainstreettowhichallbuildingsface--thus,providingforquietsidestreetsbehindthebuildings.Inothercases,"quietbacks"canbeobtainedbymeansofparks,rivers,orcathedrals.
例如,一个模式,叫做“安静的后面”,阐述了躲避商业中心的喧嚣而寻求短暂的精力恢复的需求。其建议性的解决方案就是在商业区中设计一个“安静的后面”。在某些情况下,这个商业区要设计在所有建筑都要朝向的主要街道周围——因此可以将安静的辅路铺在建筑的后面。在其他的情况下,“安静的后面”可以采用公园、河流或者是教堂的形式。23计算机专业英语》电子教案第6章共51页,您现在浏览的是第23页!6.2.2DesignPatterns
Anexampleofsuchapatternisthepublisher-subscriberpattern,consistingofamodule(thepublisher)thatmustsendcopiesofits“publications”toothermodules(thesubscribers).Asaspecificexample,consideracollectionofdatathatisbeingdisplayedonaputerscreeninmorethanoneformat--perhapsasapiegraphaswellasabargraph--simultaneously.Inthissetting,anychangeinthedatashouldbereflectedinbothgraphs.Thusthesoftwaremodulesinchargeofdrawingthegraphsshouldbenotifiedwhenchangesinthedataoccur.Inthiscase,then,thesoftwaremodulemaintainingthedataplaystheroleofthepublisherthatmustsendupdatemessagestothesubscribers,whicharethemoduleschargedwithdrawingthegraphs.这种模式的一个例子就是出版商和订户的模式:一个模块(出版商)将其出版物发送给其他模块(订户)。作为一个特殊的例子,考虑在计算机屏幕上同时显示多种格式的数据集,如饼图和条形图。这样,任何对数据的修改都将会被反映在两张图上。因此,当数据发生更改的时候,这个负责画图的软件模块将会被告知。在这种情况下,维护数据的软件模块就会扮演出版商的角色——它必须要给订户发送更新的消息,而这些订户也是模块,它们负责画图。24计算机专业英语》电子教案第6章共51页,您现在浏览的是第24页!6.2.2DesignPatterns
Onceapatternsuchaspublisher-subscriberorcontainer-ponenthasbeenidentified,softwareengineersproposethedevelopmentofskeletalprogramunits,calledframeworks,thatimplementthepertinentfeaturesofthepattern'ssolutionwhileleavingfeaturesspecifictoparticularapplicationsasslotstobefilledinlater.Toacpanyframeworks,softwareengineersproposedocumentationthatdescribeshowtheframeworkcanbefilledintoobtainapleteimplementationoftheunderlyingpatterninaparticularsetting.Suchdocumentationiscalledarecipe.Collectionsofframeworksalongwiththeirrecipesarefondlyknownascookbooks.一旦像出版商与订户或者是容器和组件这样的模式被确定,软件工程师就会计划开发一组程序单元作为骨架,这称为框架,它实现模式方法所要解决的主要特征,而将特殊应用程序的特性作为缺口,留待以后填入。为了补充框架,软件工程师提出了如何填充框架的描述文档。这种文挡被称为处方,与处方在一起的框架集被昵称为菜谱。25计算机专业英语》电子教案第6章共51页,您现在浏览的是第25页!6.2.2DesignPatterns
Withalltheexcitementthathasbeengeneratedinthesoftwareengineeringmunityoverdesignpatterns,itisinterestingtonotethatAlexanderwasnotpleasedwiththeresultsofhispatternsinarchitecture.Inshort,hefoundthatthesystemsdesignedfromhispatternswerelackingincharacter,andhisworksincetheearly1980shasfocusedonwaystocapturethisevasivequality.However,softwareengineersarguethatthegoalinsoftwaredevelopmentdoesnotinvolvesuchqualitiesasbeautyandcharacter,butinsteadaccuracyandefficiency.Thus,theycontinue,designpatternswillprovetobemoresuccessfulinthefieldofsoftwareengineeringthaninarchitecture.设计模式在软件工程领域中引起了极大的热情,而对于Alexander而言,他对自己应用于建筑学的模式却不是很满意,这是十分有趣的事。他发现根据自己的模式所设计的系统缺乏个性,并且从二十世纪八十年代初开始他主要致力于捕获这个遗漏性质的方法。但是,软件工程师认为软件开发的目标不是去追求诸如美观和个性的特性,而是追求准确和高效。因此,他们将这种方法发扬光大,设计模式在软件工程领域中将比在建筑领域中更加成功。26计算机专业英语》电子教案第6章共51页,您现在浏览的是第26页!复杂定语(从句)的翻译技巧之一一、先提后述法适用于结构复杂的并列长定语(从句)。翻译时,首先用“这样(的)”、“这样一些”、“下列(的)”等词语概括所有修饰成分,然后分别叙述各个修饰内容。用这种方法翻译的译文,重点突出、条理清楚。在许多情况下,这是一种翻译并列长定语(从句)行之有效的方法。例1.Aputerisanelectronicdevicethatcanreceiveasetofinstructions,orprogram,andthencarryoutthisprogrambyperformingcalculationsonnumericaldataorbypilingandcorrelatingotherformsofinformation.译文:计算机是一种电子装置,它能接受一套指令或程序,并通过数据运算,或收集和联系其他形式的信息来执行该程序。(比较:计算机是一种能接受一套指令或程序,并通过数据运算,或收集和联系其他形式的信息来执行该程序的电子装置)例2.Asoundcardisaprintedcircuitboardthatcantranslatedigitalinformationintosoundandback,thatplugintoaslotonthemotherboard(themaincircuitboardofaputer)andisusuallyconnectedtoapairofspeakers.译文:声卡是一块印刷电路板,它能把数字信息译为声音,也能把声音变为数字信息,它插在母板(计算机主电路板)上的槽内,而且通常连接一对喇叭。(比较:声卡是一块能把数字信息译为声音,也能把声音变为数字信息,插在母板(计算机主电路板)上的槽内,而且通常连接一对喇叭的印刷电路板。)27计算机专业英语》电子教案第6章共51页,您现在浏览的是第27页!6.1TheSoftwareLifeCycle6.1.1TheCycleasaWholeFigure6-1ThesoftwarelifecycleThemostfundamentalconceptinsoftwareengineeringisthesoftwarelifecycle.软件生命周期是软件工程中最基本的概念。28计算机专业英语》电子教案第6章共51页,您现在浏览的是第28页!6.1.1TheCycleasaWholeSoftware,ontheotherhand,doesnotwearout.Instead,softwaremovesintothemodificationphasebecauseerrorsarediscovered,becausechangesinthesoftware'sapplicationoccurthatrequirecorrespondingchangesinthesoftware,orbecausechangesmadeduringapreviousmodificationarefoundtoinduceproblemselsewhereinthesoftware.Forexample,changesintaxlawsmayrequiremodificationstopayrollprogramsthatcalculatewithholdingtaxes,andalltoooftenthesechangesmayhaveadverseeffectsinotherareasoftheprogramthatmaynotbediscovereduntilsometimelater.当然,软件不存在磨损的问题。但是,软件进入修改阶段或者是因为错误被发现,或者是因为要在软件的应用程序中进行修改从而修改了软件,或者是因为先前的改变又引起了软件其他地方出现了新的问题。例如,税务法案的改变导致对计算扣税的工资程序进行修改,而太频繁的修改则会在软件的其他地方引起反面的作用,而这些是不会被立即发现的。29计算机专业英语》电子教案第6章共51页,您现在浏览的是第29页!6.1.1TheCycleasaWholeExperiencehasshownthatalittleeffortduringthedevelopmentofsoftwarecanmakeatremendousdifferencewhenmodificationsinthesoftwarearerequired.经验告诉我们,软件开发过程中的一丁点付出,会在软件需要修改的时候带来巨大的不同。Inturn,mostoftheresearchinsoftwareengineeringfocusesonthedevelopmentstageofthesoftwarelifecycle,withthegoalbeingtotakeadvantageofthiseffort-versus-benefitleverage.反过来,大多数软件工程的研究都集中于软件生命周期的开发阶段,它们的目标是要利用这个付出与收益的杠杆作用。30计算机专业英语》电子教案第6章共51页,您现在浏览的是第30页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseAnalysisThedevelopmentphaseofthesoftwarelifecyclebeginswithanalysis--amajorgoalbeingtoidentifytheneedsoftheuseroftheproposedsystem.Ifthesystemistobeagenericproductsoldinapetitivemarket,thisanalysiswouldinvolveabroad-basedinvestigationtoidentifytheneedsofpotentialcustomers.If,however,thesystemistobedesignedforaspecificuser,thentheprocesswouldbeamorenarrowinvestigation.分析软件生命周期的开发阶段以分析开始——主要目标是确定用户对所提出系统的需求。如果系统是一个在竞争的市场上销售的通用产品,这个分析将会包括一个广泛的调查来发现潜在用户的需要。但是,如果系统是为特殊用户设计的,那么这个过程就是一个更专业的调查。31计算机专业英语》电子教案第6章共51页,您现在浏览的是第31页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseAfterthesystemrequirementsareidentified,theyareconvertedintomoretechnicalsystemspecifications.Forexample,therequirementthatdataberestrictedtoauthorizedpersonnelmightbeethespecificationthatthesystemwillnotresponduntilanapprovedeight-digitpasswordhasbeentypedatthekeyboardorthatdatawillbedisplayedinencryptedformunlesspreprocessedbyaroutineknownonlytoauthorizedpersonnel.系统的需求被确定以后,它们就转化为更具技术性的说明书。例如,关于数据须限制在某些有权限的人的需求,就可能转化为以下规范——直到从键盘输入一个被认可的8位密码,系统才开始响应,或者除非经过只有授权的人才知道的例程预处理,否则数据将以加密的形式显示在屏幕上。32计算机专业英语》电子教案第6章共51页,您现在浏览的是第32页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseItisawell-establishedprinciplethatthebeststructureforalargesoftwaresystemisamodularone.Indeed,itisbymeansofthismodulardepositionthattheimplementationoflargesystemsbeesapossibility.Withoutsuchabreakdown,thetechnicaldetailsrequiredintheimplementationofalargesystemwouldexceedahuman'sprehensivepowers.大型软件系统最好的结构是模块化系统,这是一条被充分证实的原则。确实,正是借助模块化的分解方法,大型系统的实现才成为可能。没有这样的分解,在大型系统实现过程中所需要的技术细节可能会超过一个人的理解能力。33计算机专业英语》电子教案第6章共51页,您现在浏览的是第33页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseThereare,however,distinctionsregardingtheconceptofamodule.Ifoneapproachesthedesigntaskintermsofthetraditionalimperativeparadigm,modulesconsistofproceduresandthedevelopmentofamodulardesigntakestheformofidentifyingthevarioustasksthattheproposedsystemmustperform.Incontrast,ifoneapproachesthedesigntaskfromtheobject-orientedperspective,modulesareseenasobjectsandthedesignprocessbeesthatofidentifyingtheentities(objects)intheproposedsystemaswellashowtheseentitiesshouldbehave.但是,有关模块的概念也是有差别的。如果一个人以传统的命令式语言范式的方法来进行设计工作,模块由不同程序组成,而模块化设计则以确定有待实现系统的不同任务的方式进行。相反地,如果一个人从面向对象的角度来完成设计工作,模块就被看成了对象,而设计过程变成了确定有待实现系统中的实体(对象)以及确定这些实体是如何工作的。34计算机专业英语》电子教案第6章共51页,您现在浏览的是第34页!6.1.1TheCycleasaWholeTheTraditionalDevelopmentPhaseTesting
Testingiscloselyassociatedwithimplementation,becauseeachmoduleofthesystemisnormallytestedasitisimplemented.Indeed,eachmoduleinawell-designedsystemcanbetestedindependentlyoftheothermodulesbyusingsimplifiedversionsoftheothermodules,calledstubs,tosimulatetheinteractionbetweenthetargetmoduleandtherestofthesystem.Ofcourse,thistestingofponentsgiveswaytooverallsystemtestingasthevariousmodulesarepletedandbined.测试测试与实现紧密联系,因为系统中的每一个模块都要在实现的过程中进行正常测试。确实,通过使用其他模块的简化版本——有时称为桩模块,来模拟目标模块和系统其他部分的交互,从而使设计良好的系统中的每一个模块都可以被独立地测试。当然,在各种模块都开发完成并且整合在一起之后,这个组件的测试将让路给整个系统的测试。35计算机专业英语》电子教案第6章共51页,您现在浏览的是第35页!6.1.1TheCycleasaWholeRecentTrendsEarlyapproachestosoftwareengineeringinsistedonperforminganalysis,design,implementation,andtestinginastrictlysequentialmanner.Thefeelingwasthattoomuchwasatriskduringthedevelopmentofalargesoftwaresystemtoallowfortrial-and-errortechniques.软件工程的早期方法坚持要严格地遵守分析、设计、实现以及测试的顺序。在大型软件系统的开发过程中,感觉到采用试错法是在冒着很大的风险进行开发的。36计算机专业英语》电子教案第6章共51页,您现在浏览的是第36页!6.1.1TheCycleasaWholeRecentTrendsYouwillnoticeasimilaritybetweenthefourproblem-solvingphasesidentifiedbyPolyaandtheanalysis,design,implementation,andtestingphasesofsoftwaredevelopment.Afterall,todevelopalargesoftwaresystemistosolveaproblem.你将注意到由Polya提出的解决问题的4个阶段与软件开发的分析、设计、实现和测试阶段的类似性。毕竟,开发一个大型的软件系统是去解决一个问题。37计算机专业英语》电子教案第6章共51页,您现在浏览的是第37页!6.1.1TheCycleasaWholeRecentTrendsInrecentyears,softwareengineeringtechniqueshavebeguntoreflectthisunderlyingcontradictionasillustratedbytheemergenceoftheincrementalmodelforsoftwaredevelopment.Followingthismodel,thedesiredsoftwaresystemisconstructedinincrements--thefirstbeingasimplifiedversionofthefinalproductwithlimitedfunctionality.近年来,软件工程技术已经开始反映这种本质的对立了,这可以由软件开发中出现的增量式模型来说明。根据这个模型,所需的软件系统是通过增量模式来构造的——首先开发最终产品的简化版本,它只有有限的功能。38计算机专业英语》电子教案第6章共51页,您现在浏览的是第38页!6.1.1TheCycleasaWholeRecentTrendsTheincrementalmodelisevidenceofthetrendinsoftwaredevelopmenttowardprototypinginwhichinpleteversionsoftheproposedsystem,calledprototypes,arebuiltandevaluated.Inthecaseoftheincrementalmodeltheseprototypesevolveintotheplete,finalsystem---aprocessknownasevolutionaryprototyping.Inothercases,theprototypesmaybediscardedinfavorofafreshimplementationofthefinaldesign.Thisapproachisknownasthrowawayprototyping.这种增量式模型是软件开发向原型法发展趋势的一个证据——在这种方法中,建立并测试的是不完善系统,它也被称为原型,被评估和测试。在增量式模型中,这些原型进化为一个完整的最终系统——这个过程称为演化式原型。对于其他情况,原型的抛弃会有利于新的最终设计的实现,这种方法就是抛弃原型。39计算机专业英语》电子教案第6章共51页,您现在浏览的是第39页!6.1.1TheCycleasaWholeRecentTrendsThegoalisnottoproduceaworkingversionoftheproductbuttoobtainademonstrationtoolthatcanbeusedtoclarifymunicationbetweenthepartiesinvolved.Forexample,rapidprototypeshaveprovedadvantageousinironingoutsystemrequirementsduringtheanalysisstageorasaidsduringsalespresentationstopotentialclients.我们的目标不是制作产品的有效版本,而是获得一个示范工具,以便阐明有关方面之间的沟通。例如,在分析阶段解决系统的需求问题,或在销售阶段作为向潜在客户演示的辅助,快速原型具有很大的优势
40计算机专业英语》电子教案第6章共51页,您现在浏览的是第40页!6.1.1TheCycleasaWholeRecentTrendsTheseputerizedsystemsareknownasCASEtoolsandincludeprojectplanningtools(thatassistincostestimation,projectscheduling,andpersonnelallocation),projectmanagementtools(thatassistinmonitoringtheprogressofthedevelopmentproject),documentationtools(thatartistinwritingandorganizingdocumentation),prototypingandsimulationtools(thatassistinthedevelopmentofprototypes),interfacedesigntools(thatassistinthedevelopmentofGUIs),andprogrammingtools(thatassistinwritinganddebuggingprograms).这些计算机化系统就是知名的CASE工具,且包括项目计划工具(帮助成本估计、项目调度,以及人力资源分配)、项目管理工具(帮助管理开发项目的进程)、文档工具(帮助撰写和组织文档)、界面设计工具(帮助开发GUI)以及程序设计工具(帮助编写和调试程序)。41计算机专业英语》电子教案第6章共51页,您现在浏览的是第41页!6.2DesignMethodologies
Thedevelopmentofmethodologiesfordesigningsoftwaresystemsisamajorquestwithinsoftwareengineering.Inthissectionwediscussavarietyofthetechniquesthathavebeendevelopedaswellasdirectionsofcurrentresearch.设计软件系统的方法学是软件工程领域主要探索的方向之一。本节我们将讨论一些已经形成的方法以及当前的研究方向。42计算机专业英语》电子教案第6章共51页,您现在浏览的是第42页!6.2.1Top-DownVersusBottom-Up
Theresultoftopdowndesigntendstobeahierarchicalsystemofrefinementsthatoftencanbetranslateddirectlyintoamodularstructurethatispatiblewiththeimperativeprogrammingparadigm.Thesolutionstothesmallestproblemsinthehierarchybeeproceduralmodulesthatperformsimpletasksandareusedasabstracttoolsbymoresuperiormodulestosolvethemoreplexproblemsinthesystem.
自顶向下设计的结果是一个逐步求精的层次系统,这个结构通常可以被直接翻译成与命令式语言兼容的模块结构。对层次结构中最小问题的解决变成了执行简单任务的程序模块,这个模块被较高层用作抽象工具来解决系统中更为复杂的问题。43计算机专业英语》电子教案第6章共51页,您现在浏览的是第43页!6.2.1Top-DownVersusBottom-Up
Today,however,thebottom-upmethodologyhasgainedsupport.Onereasonforthisshiftisthatthetop-downmethodologyseeksasolutioninwhichadominantmoduleusessubmodules,eachofwhichreliesonsubsubmodules,andsoon.但是,今天,自底向上的方法学又获得了支持。这种转变的一个原因就是自顶向下的方法寻求一个支配模块使用子模快,而每一个支配模块依赖于子模块的解决,等等。44计算机专业英语》电子教案第6章共51页,您现在浏览的是第44页!6.2.1Top-DownVersusBottom-Up
Anotherreasonforincreasedinterestinbottom-updesignisthatitismoreconsistentwiththegoalofbuildingplexsoftwaresystemsfrompreconstructed,off-the-shelfponents--anapproachthatisacurrenttrendinsoft-wareengineering.
对自底向上设计产生更多兴趣的另一个原因,就是它与从预先构建的现成组件中构建复杂软件系统的目标更加一致——这体现了软件工程当前的趋势。45计算机专业英语》电子教案第6章共51页,您现在浏览的是第45页!6.2.2DesignPatterns
Eachpatternconsistsofthestatementofaproblemfollowedbyaproposedsolution.Theproblemsareintendedtobeuniversal,andtheproposedsolutionsaregenericinthesensethattheyaddresstheuniversalnatureoftheproblemratherthanproposingasolutionforaparticularcase.每种模式都包括了一个问题描述以及建议性的解决方案。这些问题是很普遍的,而这个建议性的解决方案也是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国定压补水设备市场调查研究报告
- 病房护理质量管理总结报告
- 2025年中国吊筐式速冻机市场调查研究报告
- 2025年中国半蜡半脂色带市场调查研究报告
- 2025年中国制版机工作台市场调查研究报告
- 新部编版小学四年级语文教研计划
- 2025年中国凸球包角市场调查研究报告
- 酒吧市场调查与分析报告范文
- 2025年中国二通型电动阀门市场调查研究报告
- 七年级历史备课组学期复习计划
- 2025年上海嘉定区江桥镇企业服务有限公司招聘笔试参考题库附带答案详解
- 合作合同模板
- 学校保洁方案
- 罗明亮小数的意义课件
- 2025中国冶金地质总局总部招聘笔试考点考试题库答案及解析
- 2025高职单招考试(语文)试题(附答案)
- 胰岛素泵护理管理规范
- 硅pu球场施工方案
- 企业数据资产入表流程研究
- 9.1 日益完善的法律体系课件(共15张)+1视频-2024-2025学年统编版道德与法治七年级下册
- 9.1.1 西亚 第1课时 课件 七年级地理下册 人教版
评论
0/150
提交评论