ComputerEnglishUnit5SoftwareProcess(计算机英语第五单元软件过程)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Unit5SoftwareProcess第五单元:软件过程SectionASoftwareProcessModels课文A:软件过程模型Ⅰ.Introduction一、引言Asoftwareprocessisasetofactivitiesthatleadstotheproductionofasoftwareproduct.TheseactivitiesmayinvolvethedevelopmentofsoftwarefromscratchinastandardprogramminglanguagelikeJavaorC.Increasingly,however,newsoftwareisdevelopedbyextendingandmodifyingexistingsystemsandbyconfiguringandintegratingoff-the-shelfsoftwareorsystemcomponents.一个软件过程是生产出软件产品的一系列活动。这些活动可能涉及使用一种像Java或C这样的标准编程语言从零开始开发软件。然而,开发新软件越来越多地使用的方法是,扩展和修改现有系统,以及配置和集成现成软件或系统组件。Asoftwareprocessmodelisanabstractrepresentationofasoftwareprocess.Eachprocessmodelrepresentsaprocessfromaparticularperspective,andthusprovidesonlypartialinformationaboutthatprocess.Thissectionintroducesanumberofverygeneralprocessmodels(sometimescalledprocessparadigms)andpresentsthemfromanarchitecturalperspective.Thatis,weseetheframeworkoftheprocessbutnotthedetailsofspecificactivities.一个软件过程模型是对一个软件过程的一种抽象表示。每个过程模型都从一个特定角度表示一个过程,因此都只提供有关那个过程的部分信息。本文介绍几种非常通用的过程模型(有时称为过程范例),并从体系结构的角度描述它们。也就是说,我们看到的是过程的框架,而非具体活动的细节。Thesegenericmodelsarenotdefinitivedescriptionsofsoftwareprocesses.Rather,theyareabstractionsoftheprocessthatcanbeusedtoexplaindifferentapproachestosoftwaredevelopment.Youcanthinkofthemasprocessframeworksthatmaybeextendedandadaptedtocreatemorespecificsoftwareengineeringprocesses.这些类属模型不是对软件过程的规定性描述。确切点说,它们是过程的抽象,可用于解释软件开发的不同方法。你可以将其视为可扩展和调整以创建更为具体软件工程过程的过程框架。Theprocessmodelscoveredherearethewaterfallmodel,evolutionarydevelopmentandcomponent-basedsoftwareengineering.Thesethreegenericprocessmodelsarewidelyusedincurrentsoftwareengineeringpractice.Theyarenotmutuallyexclusiveandareoftenusedtogether,especiallyforlargesystemsdevelopment.Sub-systemswithinalargersystemmaybedevelopedusingdifferentapproaches.Therefore,althoughitisconvenienttodiscussthesemodelsseparately,youshouldunderstandthat,inpractice,theyareoftencombined.这里论述的过程模型是瀑布模型、演化开发和基于组件的软件工程。这3种类属过程模型在当前的软件工程实践中广泛使用。它们不是互不相容,而是经常一起使用,尤其是在大型系统开发的情况下。一个较大型系统内的子系统可使用不同的方法开发。因此,尽管分别讨论这些模型比较方便,但应该明白,实际上它们经常结合使用。II.TheWaterfallModel二、瀑布模型Thefirstpublishedmodelofthesoftwaredevelopmentprocesswasderivedfrommoregeneralsystemengineeringprocesses.ThisisillustratedinFigure5A-1.最早公布的软件开发过程模型源自比较通用的系统工程过程。这种模型如图5A-1所示。Becauseofthecascadefromonephasetoanother,thismodelisknownasthewaterfallmodelorsoftwarelifecycle.Theprincipalstagesofthemodelmapontofundamentaldevelopmentactivities:由于从一个阶段到另一个阶段的瀑布状级联,该模型称为瀑布模型或软件生命周期。该模型的主要阶段映射基本的开发活动:1.Requirementsanalysisanddefinition.1、需求分析与定义。Thesystem’sservices,constraintsandgoalsareestablishedbyconsultationwithsystemusers.系统的服务、约束和目标要经过与系统用户的磋商加以确定。Theyarethendefinedindetailandserveasasystemspecification.然后,它们得到详细定义并作为系统规格说明。2.Systemandsoftwaredesign.2、系统与软件设计。Thesystemsdesignprocesspartitionstherequirementstoeitherhardwareorsoftwaresystems.系统设计过程将需求划分成需硬件或软件系统实现的部分。Itestablishesanoverallsystemarchitecture.该过程确立一个总的系统体系结构。Softwaredesigninvolvesidentifyinganddescribingthefundamentalsoftwaresystemabstractionsandtheirrelationships.软件设计涉及到确定和描述基本的软件系统抽象及其相互关系。3.Implementationandunittesting.3、实现与单元测试。Duringthisstage,thesoftwaredesignisrealizedasasetofprogramsorprogramunits.在这个阶段,软件设计被实现为一组程序或程序单元。Unittestinginvolvesverifyingthateachunitmeetsitsspecification.单元测试涉及到验证每个单元是否符合其规格说明。4.Integrationandsystemtesting.4、集成与系统测试。Theindividualprogramunitsorprogramsareintegratedandtestedasacompletesystemtoensurethatthesoftwarerequirementshavebeenmet.单个的程序单元或程序进行集成并作为一个完整系统进行测试,以确保软件需求已得到满足。Aftertesting,thesoftwaresystemisdeliveredtothecustomer.测试之后,软件系统交付客户。5.Operationandmaintenance.5、运行与维护。Normally(althoughnotnecessarily)thisisthelongestlife-cyclephase.通常(但并非必定),这是软件生命周期最长的阶段。Thesystemisinstalledandputintopracticaluse.系统经过安装投入实际使用。Maintenanceinvolvescorrectingerrorswhichwerenotdiscoveredinearlierstagesofthelifecycle,improvingtheimplementationofsystemunitsandenhancingthesystem’sservicesasnewrequirementsarediscovered.维护涉及到纠正在软件生命周期前面阶段没有发现的错误,改进系统单元的实现,并随着新需求的发现增强系统的服务。Inprinciple,theresultofeachphaseisoneormoredocumentsthatareapproved.原则上,每个阶段的结果都要形成一份或多份经过批准的文件。Thefollowingphaseshouldnotstartuntilthepreviousphasehasfinished.前一个阶段未结束,下一个阶段不应开始。Inpractice,thesestagesoverlapandfeedinformationtoeachother.实际上,这些阶段重叠并互相馈送信息。Duringdesign,problemswithrequirementsareidentified;duringcodingdesignproblemsarefoundandsoon.在设计期间,需求方面存在的问题得到识别;在编码期间,设计问题被发现,等等。Thesoftwareprocessisnotasimplelinearmodelbutinvolvesasequenceofiterationsofthedevelopmentactivities.软件过程并非一个简单的线性模型,而是涉及到一系列迭代的开发活动。Becauseofthecostsofproducingandapprovingdocuments,iterationsarecostlyandinvolvesignificantrework.由于编制和批准文件的成本,迭代需要大笔开销,而且需要做大量重复工作。Therefore,afterasmallnumberofiterations,itisnormaltofreezepartsofthedevelopment,suchasthespecification,andtocontinuewiththelaterdevelopmentstages.因此,经过少数迭代之后,通常应冻结开发的某些部分,如规格说明,并继续进行后面的开发阶段。Problemsareleftforlaterresolution,ignoredorprogrammedaround.存在的问题留待以后解决,置之不顾,或者通过编程绕过去。Thisprematurefreezingofrequirementsmaymeanthatthesystemwon’tdowhattheuserwants.这样仓促冻结需求,可能意味着系统将难以满足用户的要求。Itmayalsoleadtobadlystructuredsystemsasdesignproblems

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功