




免费预览已结束,剩余70页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 SectionASoftwareProcessModels课文A软件过程模型 Unit5SoftwareProcess第五单元软件过程 刘晓璐讲师 MainContents 2 IntroductionTheWaterfallModelEvolutionaryDevelopmentComponent BasedSoftwareEngineering I Introduction 3 Asoftwareprocessisasetofactivitiesthatleadstotheproductionofasoftwareproduct TheseactivitiesmayinvolvethedevelopmentofsoftwarefromscratchinastandardprogramminglanguagelikeJavaorC fromscratch从零开始 从头做起 白手起家 一个软件过程是生产出软件产品的一系列的活动 这些活动可能涉及使用一种像java或者C这样的标准编程语言从零开始开发软件 4 Increasingly however newsoftwareisdevelopedbyextendingandmodifyingexistingsystemsandbyconfiguringandintegratingoff the shelfsoftwareorsystemcomponents off the shelf非专门设计的 现成的 现有的 然而 越来越多的开发新软件使用的方法是 通过扩展和修改现有系统 以及配置和集成现有软件或系统组件 5 Asoftwareprocessmodelisanabstractrepresentationofasoftwareprocess Eachprocessmodelrepresentsaprocessfromaparticularperspective andthusprovidesonlypartialinformationaboutthatprocess perspective思考方法 态度 观点 角度 一个软件过程模型是对一个软件过程的一个抽象表示 每个过程模型都从一个特定的角度表示一个过程 因此只提供有关这个过程的部分信息 6 Thissectionintroducesanumberofverygeneralprocessmodels sometimescalledprocessparadigms andpresentsthemfromanarchitecturalperspective Thatis weseetheframeworkoftheprocessbutnotthedetailsofspecificactivities paradigm p r da m n 范例 样式 模范 present pri zent vt 介绍 出现 提出 赠送vi 举枪瞄准本文介绍几种非常通用的过程模型 有时称为过程范例 并从体系结构角度描述它们 也就是说 我们看到的是过程的框架而非具体活动的细节 7 Thesegenericmodelsarenotdefinitivedescriptionsofsoftwareprocess Rather theyareabstractionsoftheprocessthatcanbeusedtoexplaindifferentapproachestosoftwaredevelopment generic d ner k adj 类的 属性的 一般的 普通的 这些类属模型不是对软件过程的规定性描述 而是 它们是过程的抽象 可用于解释软件开发的不同方法 8 Youcanthinkofthemasprocessframeworksthatmaybeextendedandadaptedtocreatemorespecificsoftwareengineeringprocesses adapt d pt vi 适应于 适应vt 改编 改写 改变 以适合你可以将其视为可扩展和调整以创建更为具体软件工程过程的过程 9 Theprocessmodelscoveredherearethewaterfallmodel evolutionarydevelopmentandcomponent basedsoftwareengineering Thesethreegenericprocessmodelsarewidelyusedincurrentsoftwareengineeringpractice 这些过程模型包括瀑布模型 演化开发和基于组件的软件工程 这三种类属过程模型是当前软件工程实践中使用最为广泛的 10 Theyarenotmutuallyexclusiveandareoftenusedtogether especiallyforlargesystemsdevelopment Sub systemswithinalargersystemmaybedevelopedusingdifferentapproaches mutually mju t u li adv 互相地 互助 它们不是互不相容的 而是经常一起使用 特别对于大型系统开发的情形 一个较大系统的子系统可能使用不同方法开发 11 Therefore althoughitisconvenienttodiscussthesemodelsseparately youshouldunderstandthat inpractice theyareoftencombined 因此 尽管分别讨论这些模型比较方便 但你应该明白 实际上 它们是经常结合使用的 Questions 12 What ssoftwareprocess Itisasetofactivitiesthatleadstotheproductionofsoftwareproduct Whatthethreecategoriesofsoftwareprocessmodelare waterfallmodel evolutionarydevelopment component basedsoftwaredevelopment Thewaterfallmodel 13 Thefirstpublishedmodelofthesoftwaredevelopmentprocesswasderivedfrommoregeneralsystemengineeringprocesses ThisisillustratedinFigure5A 1 最早发布软件开发过程模型源自于比较通用的系统工程过程 如图5A 1所示 Becauseofthecascadefromonephasetoanother thismodelisknownasthewaterfallmodelorsoftwarelifecycle Theprincipalstagesofthemodelmapontofundamentaldevelopmentactivities cascade k ske d n 小瀑布 瀑布状 级联maponto映射由于从一个阶段到另一个阶段的瀑布状级联 因此该模型称为瀑布模型或者软件生命周期 该模型的主要阶段映射基本的开发活动 14 15 Figure5A 1 TheSoftwareLifeCycle 16 Requirementsanalysisanddefinition Thesystem sservices constraintsandgoalsareestablishedbyconsultationwithsystemusers Theyarethendefinedindetailandserveasasystemspecification constraint k n stre nt n 强制 限制 约束consultation k nsl te n n 商议 磋商 商讨会 1 需求分析和定义 系统的服务 约束和目标要经过和用户的协商来确定 然后 它们被详细定义并作为系统规格说明 Systemandsoftwaredesign Thesystemsdesignprocesspartitionstherequirementstoeitherhardwareorsoftwaresystems Itestablishesanoverallsystemarchitecture Softwaredesigninvolvesidentifyinganddescribingthefundamentalsoftwaresystemabstractionsandtheirrelationships 2 系统和软件设计 系统设计过程将需求划分成需要硬件或者软件系统实现的部分 该过程确立一个总的系统体系结构 软件设计涉及确定和描述基本的软件系统抽象和其相互之间的联系 17 18 3 Implementationandunittesting Duringthisstage thesoftwaredesignisrealizedasasetofprogramsorprogramunits Unittestinginvolvesverifyingthateachunitmeetsitsspecification 3 实现与单元测试 在这个阶段 软件设计被实现为一组程序或程序单元 单元测试涉及到验证每个单元是否符合其规格说明 4 Integrationandsystemtesting Theindividualprogramunitsorprogramsareintegratedandtestedasacompletesystemtoensurethatthesoftwarerequirementshavebeenmet Aftertesting thesoftwaresystemisdeliveredtothecustomer 4 集成与系统测试 单个的程序单元或者程序进行集成并作为一个完整的系统进行测试 以确保软件需求已得到满足 测试之后 软件系统交付给用户 19 20 5 Operationandmaintenance Normally althoughnotnecessarily thisisthelongestlife cyclephase Thesystemisinstalledandputintopracticaluse 5 运行和维护 通常 尽管不是必定的 这是最长的生命周期阶段 系统被安装并交付实践使用 Maintenanceinvolvescorrectingerrorswhichwerenotdiscoveredinearlierstagesofthelifecycle improvingtheimplementationofsystemunitsandenhancingthesystem sservicesasnewrequirementsarediscovered 维护涉及到纠正软件生命周期前面阶段没有发现的错误 改进系统单元的实现 并随着新需求的发现增强系统的服务 21 定语从句 状语从句 22 Inprinciple theresultofeachphaseisoneormoredocumentsthatareapproved Thefollowingphaseshouldnotstartuntilthepreviousphasehasfinished Inpractice thesestagesoverlapandfeedinformationtoeachother 原则上 每个阶段的结果都要形成一个或者多个经过批准的文档 后续阶段在前一个阶段没有结束之前是不应该开始的 但实际上 这些阶段重叠并互相馈送信息 Duringdesign problemswithrequirementsareidentified duringcodingdesignproblemsarefoundandsoon Thesoftwareprocessisnotasimplelinearmodelbutinvolvesasequenceofiterationsofthedevelopmentactivities iteration t re n n 迭代 法 重复在设计期间 需求问题得到识别 编码期间设计问题被发现 诸如此类 软件过程并非一个简单的线性模型 而是涉及到一系列迭代的开发活动 23 24 Becauseofthecostsofproducingandapprovingdocuments iterationsarecostlyandinvolvesignificantrework Therefore afterasmallnumberofiterations itisnormaltofreezepartsofthedevelopment suchasthespecification andtocontinuewiththelaterdevelopmentstages 由于编制和批准文件的成本 迭代需要大量重复的工作 因此 经过少数迭代之后 通常会冻结开发的某些部分 比如规格说明 并继续后面的开发阶段 Problemsareleftforlaterresolution ignoredorprogrammedaround Thisprematurefreezingofrequirementsmaymeanthatthesystemwon tdowhattheuserwants premature prem tju adj 不成熟的 过早的 草率的 仓促的问题留待以后解决 或者置之不顾 或者通过编程绕过去 这样仓促冻结需求可能意味着系统将不能满足用户的要求 25 Itmayalsoleadstobadlystructuredsystemsasdesignproblemsarecircumventedbyimplementationtricks circumvent s k m vent vt 规避 避免 trick窍门 诀窍 技巧也有可能由于实现技巧规避了设计问题而导致不良的系统结构 26 27 Duringthefinallife cyclephase operationandmaintenance thesoftwareisputintouse Errorsandomissionsintheoriginalsoftwarerequirementsarediscovered omission m n n 省略 删节 遗漏 疏忽在最后的生命周期阶段 运行与维护 软件投入使用 最初软件需求中存在的错误和疏漏被发现 Programanddesignerrorsemergeandtheneedfornewfunctionalityisidentified Thesystemmustthereforeevolvetoremainuseful Makingthesechanges softwaremaintenance mayinvolverepeatingpreviousprocessstages 程序与设计错误浮现 而且新的功能需要得到确定 因此 为了保持有用性 系统必须演变 进行这些更改 软件维护 可能涉及到重复以前的过程阶段 28 29 Theadvantagesofthewaterfallmodelarethatdocumentationisproducesateachphaseandthatisfitswithotherengineeringprocessmodels Itsmajorproblemisitsinflexiblepartitioningoftheprojectintodistinctstages inflexible n fleks bl adj 僵硬的 不屈服的 瀑布模型的优点在于每个阶段都编制文件 而且它与其他工程过程模型相符合 其主要问题在于将项目僵硬地划分成不同的阶段 Commitmentsmustbemadeatanearlierstageintheprocess mitment k m tm nt n 承诺 许诺 委任 委托 致力 献身 承担义务在过程的早期阶段就必须要定下决心 从而使得应对客户需求变化很困难 30 31 Therefore thewaterfallmodelshouldonlybeusedwhentherequirementsarewellunderstoodandunlikelytochangeradicallyduringsystemdevelopment However thewaterfallmodelreflectsthetypeofprocessmodelusedinotherengineeringprojects 因此 瀑布模型只能在需求得到很好理解 系统开发期间不可能发生根本性变化的情况下才可以使用 然而 瀑布模型反映了其它工程项目中所使用的过程模型类型 Consequently softwareprocessesbasedonthisapproacharestillusedforsoftwaredevelopment particularlywhenthesoftwareprojectispartofalargersystemsengineeringproject 所以 基于这个方法的软件过程仍然用于软件开发 特别是当有关软件项目是一个较大系统工程项目的一部分时 32 TheWaterfallModel 33 Pleasegivethemainstagesofwaterfallmodel 1 Requirementsanalysisanddefinition 2 Systemandsoftwaredesign 3 Implementationandunittesting 4 Integrationandsystemtesting 5 Operationandmaintenance TheWaterfallModel 34 Theadvantageanddisadvantageofthewaterfallmodel 1 Documentationisproducedateachphrasethatitfitswithotherengineeringprocessmodels 2 Itsinflexiblepartitioningoftheprojectintodistinctstages EvolutionaryDevelopment 35 Evolutionarydevelopmentisbasedontheideaofdevelopinganinitialimplementation exposingthistousercommentandrefiningitthroughmanyversionsuntilanadequatesystemhasbeendeveloped Figure5A 2 演化开发是基于这样的思想 开发一个原始实现 让其接受用户评论 并通过多个版本的改进最终开发出能够满足需要的系统 图5A 2 Specification developmentandvalidationactivitiesareinterleavedratherthanseparate withrapidfeedbackacrossactivities validation v l de n n 确认 验证interleaved nt l vd adj 交叉存取的 隔行扫描的规格说明 开发和验证活动不是分开进行 而是交叉进行 各项活动之间有快速的信息反馈 36 37 Figure5A 2 EvolutionaryDevelopment 38 Therearetwofundamentaltypesofevolutionarydevelopment 1 Exploratorydevelopmentwheretheobjectiveoftheprocessistoworkwiththecustomerstoexploretheirrequirementsanddeliverafinalsystem 两种基本类型的演化开发方法 1 探索式开发 这种类型中 过程的目标是与客户协作探索他们的需求 并交付一个最终的系统 Thedevelopmentstartswiththepartsofthesystemthatareunderstood Thesystemevolvesbyaddingnewfeaturesproposedbycustomer 开发从已理解的系统部分开始 随着增添客户提出的新的特征 系统不断演变 39 40 2 Throwawayprototypingwheretheobjectiveoftheevolutionarydevelopmentprocessistounderstandthecustomer srequirementsandhencedevelopabetterrequirementsdefinitionforthesystem throwaway r we adj 一次性的 用完即弃的prototype pr t ta p n 原型 雏形 蓝本抛弃式原型开发 这种类型中 演化开发过程的目标是理解客户的需求 从而为系统开发较好的需求定义 Theprototypeconcentratesonexperimentingwiththecustomerrequirementsthatarepoorlyunderstood 原型集中试验那些没有很好理解的客户需求 41 42 Anevolutionaryapproachtosoftwaredevelopmentisoftenmoreeffectivethanthewaterfallapproachinproducingsystemthatmeettheimmediateneedsofcustomers 在生产满足客户眼下需要的系统时 软件开发的演化方法常常比瀑布方法有效 定语从句 Theadvantageofasoftwareprocessthatisbasedonanevolutionaryapproachisthatthespecificationcanbedevelopedincrementally incrementally inkri m nt li adv 逐渐地 渐进性的递增累加基于演化方法的软件过程的优点是 规格说明可以渐进地开发 43 定语从句 表语从句 Asusersdevelopabetterunderstandingoftheirproblem thiscanbereflectedinthesoftwaresystem However fromanengineeringandmanagementperspective theevolutionaryapproachhastwoproblems 随着用户增进对其问题的理解 这种理解可以反映在软件系统中 然而 从工程和管理的角度来看 演化方法存在两个问题 44 45 1 Theprocessisnotvisible Managersneedregulardeliverablestomeasureprogress Ifsystemsaredevelopedquickly itisnotcost effectivetoproducedocumentsthatreflecteveryversionofthesystem deliverable di liv r bl adj 可交付的 可交付使用的1 过程缺乏可视性 管理员需要定期交付的产品来衡量进度 在快速开发系统的情况下 编制反映每个系统版本的文件不合算 2 Systemsareoftenpoorlystructured Continualchangetendstocorruptthesoftwarestructure Incorporatingsoftwarechangesbecomesincreasinglydifficultandcostly corrupt k r pt vt 使腐败 使堕落 使腐烂incorporate n k p re t vi 包含 吸收 合并2 系统常常缺乏良好的结构 不断的更改往往会破坏软件的结构 吸收软件更改变得越来越困难 越来越成本高昂 46 47 Forasmallandmedium sizedsystems upto500 000linesofcode theevolutionaryapproachmaybethebestapproachtodevelopment 对于中小型系统 上至50万行代码 演化方法或许是最佳的开发方法 Theproblemsofevolutionarydevelopmentbecomeparticularlyacuteforlarge complex long life timesystems wheredifferentteamsdevelopdifferentpartsofthesystem acute kju t adj 情况 严重的对于不同小组开发系统不同部分的大型 复杂 长寿命系统 演化开发存在的问题尤为严重 48 Itisdifficulttoestablishastablesystemarchitectureusingthisapproach whichmakesithardtointegratecontributionsfromtheteams stable ste bl adj 稳定的contribution k ntr bju n n 贡献使用这种方法难以建立一个稳定的系统体系结构 这使得集成各小组的贡献变得很难 49 50 Forlargesystems amixedprocessisrecommendedwhichincorporatesthebestfeaturesofthewaterfallandtheevolutionarydevelopmentmodels recommend rek mend vt 推荐 劝告对于大型系统 建议使用一种混合过程 将瀑布模型和演化开发模型的最佳特征结合起来 Thismayinvolvedevelopingathrowawayprototypeusinganevolutionaryapproachtoresolveuncertaintiesinthesystemspecification 这可能涉及到使用演化方法开发一个抛弃式原型 以解决系统规格说明中存在的不确定性 51 Youcanthenre implementthesystemusingamorestructuredapproach Partsofthesystemthatarewellunderstoodcanbespecifiedanddevelopedusingawaterfall basedprocess 然后 可使用一种结构化程度比较高的方法重新实现系统 得到很好理解的系统部分可使用基于瀑布模型的过程进行规格说明和开发 52 Otherpartsofthesystem suchastheuserinterface whicharedifficulttospecifyinadvance shouldalwaysbedevelopedusinganexploratoryprogrammingapproach inadvance在前头 预先 事先 事先难以进行规格说明的其他系统部分 如用户界面 无例外地应使用探索式编程方法来开发 53 EvolutionaryDevelopment 54 Twofundamentaltypesofevolutionarydevelopment Exploratorydevelopment Throwawayprototyping EvolutionaryDevelopment 55 TheadvantageanddisadvantageofEvolutionaryDevelopment 1 Itisbasedonanevolutionaryapproachthatthespecificationcanbedevelopedincrementally 2 Theprocessisnotvisible systemsareoftenpoorlystructured Component BasedSoftwareEngineering 56 Inthemajorityofsoftwareprojects thereissomesoftwarereuse Thisusuallyhappensinformallywhenpeopleworkingontheprojectknowofdesignsorcodewhichissimilartothatrequired 大多数软件项目都存在某种程度的软件复用 通常 这是非正式发生的 参加项目的人知道有现成的设计或编码类似于他们所需的设计或编码 Theylookforthese modifythenasneededandincorporatethemintotheirsystem Intheevolutionaryapproach reuseisoftenessentialforrapidsystemdevelopment incorporate n k p re t vt 组成公司 包含 使混合 使具体化vi 包含 吸收 合并 混合他们寻找这些设计或编码 根据需要对其进行修改 并将其吸收进他们的系统 对于使用演化方法进行快速系统开发 复用常常是必要的 57 58 Thisinformalreusetakesplaceirrespectiveofthedevelopmentprocessthatisused takeplace发生 举行 产生 进行irrespective r spekt v adj 不考虑 的 不顾 的 不受 影响的这种非正式复用的发生是不考虑所使用的开发过程的 However inthelastfewyears anapproachtosoftwaredevelopmentcalledcomponent basedsoftwareengineering CBSE whichreliesonreuse hasemergedandisbecomingincreasinglyused relyon依靠 倚赖 仗恃 信任 信赖然而 在过去几年中 出现了一种软件开发方法 这种方法使用得越来越多 它依靠复用 被称为基于组件的软件工程 59 定语从句 定语从句 省略that 60 Thisreuse orientedapproachreliesonalargebaseofreusablesoftwarecomponentsandsomeintegratingframeworkforthesecomponents 这种面向复用的方法依靠大量的可复用软件组件 以及用于这些组件的某种集成框架 Sometimes thesecomponentsaresystemsintheirownright COTSorcommercialoff the shelfsystems thatmayprovidespecificfunctionalitysuchastextformattingornumericcalculation ThegenericprocessmodelforCBSEisshowninFigure5A 3 functionality f k n l ti n 计算机等的 功能有时 这些组件本身就是可提供文本格式化或数值计算等特定功能的系统 商用现成系统 基于组件的软件工程的类属过程模型如图5A 3所示 61 62 Figure5A 3 Component BasedSoftwareEngineering 63 Whiletheinitialrequirementsspecificationstageandthevalidationstagearecomparablewithotherprocesses theintermediatestagesinareuse orientedprocessaredifferent Thesestagesare comparable k mp r bl adj 类似的 同类的 可比的 可比较的就最初的需求规格说明阶段和验证阶段而言 面向复用过程与其他过程相类似 但它的中间阶段与其他过程不同 这些阶段是 1 Componentanalysis Giventherequirementspecification asearchismadeforcomponentstoimplementthatspecification Usually thereisnoexactmatch andthecomponentsthatmaybeusedonlyprovidesomeofthefunctionalityrequired 组件分析 在有需求规格说明的情况下 搜索实现该规格的组件 通常 不存在完全相符的组件 可能被使用的组件只在某种程度上提供所要求的功能 64 65 2 Requirementsmodification Duringthisstage therequirementsareanalyzedusinginformationaboutthecomponentsthathavebeendiscovered Theyarethenmodifiedtoreflecttheavailablecomponents Wheremodificationsareimpossible thecomponentanalysisactivitymaybere enteredtosearchforalternativesolutions 需求修改 在这个阶段 使用已经发现的组件的相关信息分析需求 然后修改需求以反映可用的组件 在无法进行修改的情况下 可能重新进入组件分析活动 以搜索可供选择的解决方案 66 3 Systemdesignwithreuse Duringthisphase theframeworkofthesystemisdesignedoranexistingframeworkisreused 3 带复用的系统设计 在这个阶段 设计系统框架或复用现有的框架 Thedesignerstakeintoaccountth
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川护理高考试卷及答案
- 2025工地临时彩钢活动板房安装签订的安拆合同以及安全协议书
- 2025年商法概要及应用考试试卷及答案
- 2025年教育学心理学试题库及答案
- 灌装车间岗位安全培训课件
- 2025年淘宝网红肖像权授权及电商平台合作合同
- 大一工艺美术考试题及答案
- 深圳注安考试题库及答案
- 林业局员工招聘考试题及答案
- 课件中插入使用说明
- 63T折弯机使用说明书
- GB∕T 5336-2022 汽车车身修理技术条件
- 部编版六年级道德与法治上册第2课《宪法是根本法》精品课件【带视频】
- 南亚环氧树脂
- 常见体表肿物
- 化疗所致恶心呕吐护理
- 信息检索技术讲义
- 商业银行基于华为OceanStor的关键业务同城切换方案
- 火力发电厂运煤设计规程
- 第十章DNA、RNA的生物合成ppt课件
- 3250变压器综合测试仪(共85页)
评论
0/150
提交评论