版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级软件开发过程第1章绪论计算机软件发展的三个阶段:程序设计阶段(软件工作:程序设计,软件质量:程序设计=数据结构+算法,强调编程技巧)软件工程阶段(总结软件危机的教训,软件工作:代码编写+需求分析、测试、维护等等,软件质量:程序的可读性、可理解性、可测试性和易修改性等工程化的原则)、软件过程阶段(软件工作:软件开发过程+软件管理过程,更强调软件开发的效率、软件质量以及与软件开发相关的管理工作)现代软件产业的总体情况:很多软件项目最终不能交付,或者最终交付的软件项目发生延期、成本超出预算、而且运行经常不可靠。原因:不完整、不现实的项目需求描述、对需求变更束手无策、脆弱的框架、采用不成熟的技术、测试的不充分性、拙劣的进度计划和评估、缺乏资源、不具备项目管理的方法、缺少管理层的支持。软件周期模型:定义:软件生命周期模型是软件过程中全部活动的生命周期结构框架的一种形式化描述,也成为软件生存期模型。种类:瀑布模型、演化(原型)模型、螺旋模型、喷泉模型。总体局限性:软件过程不仅包括组成过程的各种活动,而且包括各种活动的相关项,如活动的执行者、活动执行时采用的各种方法和工具、活动执行的结果等等,软件生命周期模型用于指导软件开发实践时,表现出较差的可操作性。软件过程模式:定义:软件工程模式从成功或失败的软件开发实践中总结而成,是软件过程中生命周期、人员、方法、产品四大要素相互关联的有机整体。典型的过程模式:Rational统一过程、敏捷过程、微软过程。其他过程模式:个体/小组软件过程(PSP/TSP)软件过程模式与软件生命周期模型的关系:软件生命周期模型包含与软件过程模式中。软件过程能力评估标准和改进方案:CMM(能力成熟度模型):初始级、可重复级、已定义级、已定量管理级、优化级。IS09000;6o。第2章Rational统一过程什么是RUP:Rational统一过程(RationalUnifiedProcess)是一种典型的软件过程模式,对软件过程模式的四大要素——生命周期、人员、方法和产品均进行了详尽的论述;是一种软件过程产品——Rational公司开发并维护,与Rational—系列其他软件开发工具集成。*2.RUP术语:用户代表与所开发的系统进行交互的某个人或某个系统(所开发系统之外的另—个系统)。用例是能够向用户提供有价值结果的系统中的—种功能。所有的用例合在—起构成用例模型。特点:确定系统需求的工具,传统的系统功能说明:系统应该做什么?用例模型:增加三个词foreachuser。驱动软件开发过程,RUP三大特点中第—大特点为“用例驱动”。构架是系统在其所处环境中最高层次的概念。软件系统的构架是指通过接口交互的重要构件的组织和结构,这些构件又由—些更小的构件和接口组成。RUP三大特点中第二大特点为“以构架为中心。”工作流程是在业务中执行的活动序列,它对于业务主角个体生成—个可见值结果。迭代是指带有已建立基线的计划和评估准则的独特活动序列,迭代生成内部或外部的发布版本。增量是指在后续迭代结束后,两个发布版本之间存在的差异或差值。RUP三大特点中第三大特点为“迭代和增量的过程”。在软件过程组织的环境中,个人或协同工作的小组的行为和职责定义为角色,角色代表项目中个人承担的作用,并确定了如何完成工作。活动是要求角色执行的工作单元。工件是指一条信息,该信息:由过程生成、修改或使用;定义了职责范围;受到版本控制。里程碑是迭代正式结束的时间点,该时间点与发布时间点相对应。阶段是指项目相邻两个主要里程碑之间的时间段,在此期间要实现一组既定的目标、完成工件并决定是否进入下一阶段。RUP二维结构生命周期:横轴通过时间组织,体现开发过程的动态结构。术语主要包括阶段、里程碑、迭代和增量。纵轴将内容组织为逻辑活动,体现开发过程的静态结构,术语主要包括工作流程、活动、角色、工件。RUP静态结构:九个核心工作流程。工作流程代表了所有角色、活动与工件的逻辑分组情况,即软件过程模式中的三个要素。九个核心工作流程组成:核心过程工作流程:前6个,核心支持工作流程:后3个。业务建模:产生的主要工件为业务模型;需求:用例方法:对需要的功能和约束进行提取、组织、文档化,理解系统所解决问题的定义和范围。产生的主要工件为用例模型,用户界面模型;分析设计:以构架设计为中心:产品的适应性、可扩展性。产生的主要工件为一个设计模型、一个分析模型(可选)。实现:产生的主要工件为实施模型(模型元素包括实施子系统和构件)测试:产生的主要工件为测试模型(模型元素包括测试用例、测试过程和测试构件)+测试结果。部署:产生的主要工件为产品的一个版本+文档培训资料。配置和变更管理:产生的主要工件为配置管理计划、变更请求、项目存储库和工作区。项目管理:产生的主要工件为商业理由、迭代计划、风险管理计划、质量保证计划及相应的评估文档。环境:产生的主要工件为工作流程指南、工具、工具指南。RUP动态结构:四个阶段。每个阶段由一次或多次迭代完成,迭代过程是受控的。先启阶段:目标:建立业务用例、确定项目的边界,结束里程碑:生命周期目标里程碑。精化阶段:目标:建立稳定的构架、编制项目计划、淘汰项目中最高风险的元素,结束里程碑:生命周期构架里程碑。构建阶段:目标:所有构件和应用程序功能被开发并集成为产品、所有的功能被详尽的测试,结束里程碑:最初操作性能里程碑。产品化阶段:目标:将软件产品交付给用户群体,结束里程碑:产品发布里程碑。RUP与螺旋模型异同点:相同点:二维迭代特性。重复一系列组成系统生命周期的循环;每次循环的结束是向用户交付产品的一个运行版本;每个循环由若干次迭代组成;每次迭代需要进行风险分析处理;每次迭代结束的标志是交付一个增量。螺旋模型:每次迭代历经笛卡儿坐标系中四个象限的四个方面活动,RUP:每次迭代历经九个核心工作流程中的若干个。不同点:螺旋模型未给出每次迭代过程结束交付的增量原型的具体要求;也未给出不同次迭代在历经的笛卡儿坐标系中四个象限的四个方面活动的内容与重点的不同。RUP将整个生命周期划分为四个阶段,明确给出了每个阶段内的若干次迭代过程完成后交付的增量的具体要求,即四个阶段的主要里程碑——生命周期目标里程碑、生命周期构架里程碑、最初操作性能里程碑和产品发布里程碑;同时详细阐述了不同阶段中的不同迭代过程历经的九大核心工作流程中活动内容的重点和强度的不同;提供了对每次迭代过程中不同核心工作流程活动的并行化支持。RUP的二维生命周期结构对“迭代”意义的体现比螺旋模型更深刻、具体、详尽、全面,更具可操作性。RUP的优点:相对瀑布类模型:将成本风险进一步降低为获得一次增量所需费用;进一步降低了产品不能按计划投放市场的风险;使项目开发更能适应项目需求的变化。相对螺旋类模型:用于指导需求不明确、不稳定的项目开发时具有更强的可操作性。RUP人员——角色:分析员、开发人员、测试员、经理、其他角色。角色的意义:将角色与个体区分开。某种角色:一个或多个相互协作的个体完成,一个个体:担任一种或多种角色。制定迭代计划:确定每个阶段、每个工作流程中需要的角色;制定人员计划:考虑人员的技能、能力经验,将一个或多个角色分配给一个适合的人员完成。有效提高了项目中人力资源的利用率。缺陷:论述不够深入,忽略了角色的质量,未给出角色的组织管理方式、角色间的相互地位关系和交互方式。体现过程可操作性的一个重要方面,RUP未给出。RUP方法:(1) 用例及用例驱动。用例是能够向用户提供有价值结果的系统中的一种功能。所有的用例合在一起构成用例模型。采用用例的两个原因:用例被证明是捕获需求的一种有效方法。达到需求捕获的第一个目标:发现多样性的需求(传统的系统功能说明:系统应该做什么?用例模型:增加三个词foreachuser),达到需求捕获的第二个目标:以适用于用户和开发人员的方式加以表示;用例驱动整个过程。(2) 以构架为中心。构架描述:5个视图:用例模型视图、分析模型视图、设计模型视图、实施模型视图、实现模型视图。每个视图是对应模型的精华与核心部分。意义:理解系统,②组织开发,③鼓励重用和进化系统。(3)在面向对象的分析设计中采用UML进行可视化建模。(4)面向对象的设计与构件实现。RUP产品——工件:定义:项目期间生成的中间或最终产品。工件类型:根据RUP的各工作流程:划分为业务建模工件、需求工件、分析设计工件、实施工件、测试工件、部署工件、配置与变更管理工件、项目管理工件、环境工件;根据物流方向:划分为输入工件、输出工件和辅助工件;根据存在形式:划分为模型、模型元素、文档、源代码、可执行文件。RUP特点:优点:作为一种软件过程:RUP具有二维迭代性,有利于降低风险、适应需求变化;RUP是可配置的过程,具有通用性;作为一种软件过程模式:相对传统的软件生命周期模型具有较强的可操作性;作为一种软件过程产品:具有实用性、可操作性与可实现性。缺陷:与软件过程模式配置操作相关的因素软件过程模式中生命周期、人员、方法、产品四大要素之间的相互关系和相对优先级;各生命周期元素间的相互关系和相对优先级;人员间的协作关系与协作方式、人员的质量、各种人员的相对优先级;各种方法间的相互关系及相对优先级;各种产品的相对优先级。结论:RUP是一个具有突出优点的软件过程模式;RUP还很不完整,在实际应用中仍需进一步吸收其它优秀的软件开发实践经验以对其进行补充和完善。第3章敏捷过程什么是AP:敏捷软件开发宣言:软件团队具有快速工作、快速响应变化的能力,制订了4条基本价值观和12条原则。敏捷过程(AgileProcess)是一种典型的软件过程模式,对软件过程模式中的四大要素(生命周期、人员、方法、产品)及相互关系均进行了论述。AP流派:极限编程XP、SCRUM、动态系统开发方法DSDM、水晶系列方法、开放式源码、适配性软件开发ASD、适配性软件开发ASD。AP的4条价值观:①个体和交互胜过过程和工具。人是软件项目获得成功最为重要的因素,当然,不好的过程和工具也可以使最优秀的团队成员失去效用、合作、沟通以及交互能力要比单纯的软件编程能力更为重要;合适的工具对于成功来说非常重要,工具的作用不可被过份地夸大,建议从使用小的工具开始。结论:团队的构建(包括个体、交互等)要比项目环境(包括过程、工具)的构建重要得多;应该首先致力于构建团队,然后再让团队基于需要来配置环境。可以工作的软件胜过面面俱到的文档。软件的重要性:交付给用户可以工作的软件而不是文档,否则应该称之为文档开发而不是软件开发。文档的作用:没有文档的软件是一种灾难,过多的面面俱到的文档比过少的文档更糟。准则:软件开发的主要和中心活动是创建可以工作的软件;直到迫切需要并且意义重大时,才进行文档编制;编制的内部文档应尽量短小并且主题突出。客户合作胜过合同谈判。客户不可能做到一次性地将他们的需求完整清晰地表述在合同当中:客户需求的多样性,客户需求还可能随时发生变化。全方位的满足客户需求的有效途径:开发团队与客户紧密协作,为开发团队和客户的协同工作方式提供指导的合同是最好的合同。响应变化胜过遵循计划。变化是软件开发中存在的现实:商务环境可能会变化,这会引起需求的变动;随着系统逐渐开始运做,项目关系人(包括开发人员与客户)对系统的理解也会发生变化;技术随着时间也在变化。响应变化的有效途径之一是制定灵活可塑的计划:制定计划的策略——细致度逐渐降低的计划。*4.AP的12条原则:最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化来为客户创造竞争优势。经常性交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。在整个项目开发期间,商务人员和开发人员必须天天都工作在一起。围绕被激励起来的个体来构建项目,给他们提供所需的环境和支持,并且信任他们能够完成工作。在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。工作的软件是首要的进度度量标准。敏捷过程提倡可持续的开发速度,责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。不断地关注优秀设计的技能和好的设计会增强敏捷能力。简单——使未完成的工作最大化的艺术——是根本的。⑪最好的构架、需求和设计出自于自组织的团队。⑫每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。*5.XP实践:客户作为团队成员。用户素材。短交付周期。验收测试。结对编程(由两个开发人员在同一台电脑上共同编写解决同一问题的代码,通常一个人负责编码,而另一个负责保证代码的正确性与可读性。作用:结对编程是一种非正式的同级评审,它要求成对编程的两个开发人员在性格和技能上应该相互匹配)。测试驱动开发(强调“测试先行:RUP对测试也是非常的重视,只是RUP和XP两者对于测试在整个项目开发周期内首先出现的位置处理不同)。集体所有权。持续集成(提倡在一天中集成系统多次,而且随着需求的改变,要不断的进行回归测试,持续集成不是XP专有的最佳实践,微软公司就有每日编译的成功实践)。可持续的开发速度。开放的工作空间。⑪计划游戏(计划是持续的,循序渐进的。根据项目的进展来进行项目计划的调整,一成不变的计划是不存在)⑫简单的设计。⑬重构(指在不改变系统行为的前提下,重新调整、优化系统的内部结构以减少复杂性、消除冗余、增加灵活性和提高性能。重构不是XP所特有的行为)⑭隐喻(将隐喻看成整个系统联系在一起的全局视图、系统的未来影像,RUP的构架视图)6.AP的生命周期:敏捷过程是一个一维的迭代过程。该过程中的每一个生命周期循环交付一个有价值的软件版本,各循环可持续进行。RUP的二维双重的迭代过程:RUP整个过程是若干次生命周期的不断循环;每个循环包括先启、精化、构建和产品化四个阶段,每个阶段由一次或多次迭代完成,每次迭代可能经历九个核心工作流程中的若干个;项目进度衡量的首要标准是各阶段的主要里程碑,包括生命周期目标里程碑、生命周期构架里程碑、最初操作性能里程碑和产品发布里程碑。AP相对RUP:具有对变化和不确定性的“更快速、更敏捷”的反应特性;快速的同时仍保持可持续性;该特性能较好地适应商业竞争环境下对小型项目提出的有限开发时间的约束。*7.AP的人员:(1)客户角色的重要性:对客户角色重要性进行突出强调;RUP:无。(2)个体间的相互关系和协作方式:相互关系:个体相互的地位关系是平等的,职责是共同的。协作方式:首要协作交互方式为面对面的交谈;也编写文档,但文档仅作为辅助交互方式ORUP:未给出个体间地位关系,协作方式为“形式化的文档——模型”这一书面形式而非口头交谈方式。结合AP和RUP:个体间的职责进行明确分工,同时个体间为平等协作关系;个体间的交互方式首选交谈,但在必要情况下,如交谈的结果将作为设计开发的依据,则有必要编写文档或创建模型,以书面的形式记录交谈的结果。AP的方法:(1)动态满足需求——从欢迎变化、与客户合作到响应变化。步骤一:欢迎变化;步骤二:与客户合作;步骤三:响应变化。(2)简单化。区别:RUP:考虑产品的适应性、可扩展性与可重用性等高性能特性,提倡以构架为中心的设计方法,要求构架必须留有实现现在和未来需要的所有用例空间。AP:要求在设计阶段尽可能的识别出最简单的构架。联系:是对产品不同质量要求的不同的应对策略。简单质量要求环境:在可预见的最近几次生命周期内,对产品质量仅为无缺陷要求,而对适应性、可扩展性、可重用性等高性能指标没有要求,采用AP的简单化设计方法,以达到快速开发的目的。复杂质量要求环境:在可预见的最近几次生命周期内,对产品质量不仅为无缺陷要求,而且对适应性、可扩展性、可重用性等高性能指标可能有若干要求。采用RUP的以构架为中心设计方法,以避免可能发生的系统整体重构造成最终开发效率的极速下降。(3)团队持续自我反省。AP的产品:(1)各类产品的优先级AP:第2条价值观,可以工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论