高级软件开发过程(复习资料)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高级软件开发过程
第1章绪论
1. 计算机软件发展的三个阶段:程序设计阶段(软件工作:程序设计,软件质量:程序设计=数据结构+算法,强调编程技巧)、软件工程阶段(总结软件危机的教训,软件工作:代码编写+需求分析、测试、维护等等,软件质量:程序的可读性、可理解性、可测试性和易修改性等工程化的原则)、软件过程阶段(软件工作:软件开发过程+软件管理过程,更强调软件开发的效率、软件质量以及与软件开发相关的管理工作)
2.现代软件产业的总体情况:很多软件项目最终不能交付,或者最终交付的软件项目发生延期、成本超出预算、而且运行经常不可靠。原因:不完整、不现实的项目需求描述、对需求变更束手无策、脆弱的框架、采用不成熟的技术、测试的不充分性、拙劣的进度计划和评估、缺乏资源、不具备项目管理的方法、缺少管理层的支持。
3. 软件周期模型:定义:软件生命周期模型是软件过程中全部活动的生命周期结构框架的一种形式化描述,也成为软件生存期模型。种类:瀑布模型、演化(原型)模型、螺旋模型、喷泉模型。总体局限性:软件过程不仅包括组成过程的各种活动,而且包括各种活动的相关项,如活动的执行者、活动执行时采用的各种方法和工具、活动执行的结果等等,软件生命周期模型用于指导软件开发实践时,表现出较差的可操作性。
4. 软件过程模式:定义:软件工程模式从成功或失败的软件开发实践中总结而成,是软件过程中生命周期、人员、方法、产品四大要素相互关联的有机整体。典型的过程模式:Rational统一过程、敏捷过程、微软过程。其他过程模式:个体/小组软件过程(PSP/TSP)。
5.软件过程模式与软件生命周期模型的关系:软件生命周期模型包含与软件过程模式中。
6.软件过程能力评估标准和改进方案:CMM(能力成熟度模型):初始级、可重复级、已定义级、已定量管理级、优化级。ISO9000;6σ。
第2章Rational 统一过程
1.什么是RUP:Rational统一过程(Rational Unified Process)是一种典型的软件过程模式,对软件过程模式的四大要素——生命周期、人员、方法和产品均进行了详尽的论述;是一种软件过程产品——Rational公司开发并维护,与Rational一系列其他软件开发工具集成。
*2.RUP术语:用户代表与所开发的系统进行交互的某个人或某个系统(所开发系统之外的另一个系统)。用例是能够向用户提供有价值结果的系统中的一种功能。所有的用例合在一起构成用例模型。…特点:①确定系统需求的工具,传统的系统功能说明:系统应该做什么?用例模型:增加三个词for each user。②驱动软件开发过程,RUP三大特点中第一大特点为“用例驱动”。构架是系统在其所处环境中最高层次的概念。软件系统的构架是指通过接口交互的重要构件的组织和结构,这些构件又由一些更小的构件和接口组成。RUP三大特点中第二大特点为“以构架为中心”。工作流程是在业务中执行的活动序列,它对于业务主角个体生成一个可见值结果。迭代是指带有已建立基线的计划和评估准则的独特活动序列,迭代生成内部或外部的发布版本。增量是指在后续迭代结束后,两个发布版本之间存在的差异或差值。RUP三大特点中第三大特点为“迭代和增量的过程”。在软件过程组织的环境中,个人或协同工作的小组的行为和职责定义为角色,角色代表项目中个人承担的作用,并确定了如何完成工作。活动是要求角色执行的工作单元。工件是指一条信息,该信息:由过程生成、修改或使用;定义了职责范围;受到版本控制。里程碑是迭代正式结束的时间点,该时间点与发布时间点相对应。阶段是指项目相邻两个主要里程碑之间的时间段,在此期间要实现一组既定的目标、完成工件并决定是否进入下一阶段。
3.RUP二维结构生命周期:横轴通过时间组织,体现开发过程的动态结构。术语主要包括阶段、里程碑、迭代和增量。纵轴将内容组织为逻辑活动,体现开发过程的静态结构,术语主要包括工作流程、活动、角色、工件。
4.RUP静态结构:九个核心工作流程。工作流程代表了所有角色、活动与工件的逻辑分组情况,即软件过程模式中的三个要素。九个核心工作流程组成:核心过程工作流程:前6个,核心支持工作流程:后3个。①业务建模:产生的主要工件为业务模型;②需求:用例方法:对需要的功能和约束进行提取、组织、文档化,理解系统所解决问题的定义和范围。产生的主要工件为用例模型,用户界面模型;③分析设计:以构架设计为中心:产品的适应性、可扩展性。产生的主要工件为一个设计模型、一个分析模型(可选)。④实现:产生的主要工件为实施模型(模型元素包括实施子系统和构件)。⑤测试:产生的主要工件为测试模型(模型元素包括测试用例、测试过程和测试构件)+测试结果。⑥部署:产生的主要工件为产品的一个版本+文档培训资料。⑦配置和变更管理:产生的主要工件为配置管理计划、变更请求、项目存储库和工作区。⑧项目管理:产生的主要工件为商业理由、迭代计划、风险管理计划、质量保证计划及相应的评估文档。⑨环境:产生的主要工件为工作流程指南、工具、工具指南。
5.RUP动态结构:四个阶段。每个阶段由一次或多次迭代完成,迭代过程是受控的。①先启阶段:目标:建立业务用例、确定项目的边界,结束里程碑:生命周期目标里程碑。②精化阶段:目标:建立稳定的构架、编制项目计划、淘汰项目中最高风险的元素,结束里程碑:生命周期构架里程碑。③构建阶段:目标:所有构件和应用程序功能被开发并集成为产品、所有的功能被详尽的测试,结束里程碑:最初操作性能里程碑。④产品化阶段:目标:将软件产品交付给用户群体,结束里程碑:产品发布里程碑。
6. RUP与螺旋模型异同点:相同点:二维迭代特性。重复一系列组成系统生命周期的循环;每次循环的结束是向用户交付产品的一个运行版本;每个循环由若干次迭代组成;每次迭代需要进行风险分析处理;每次迭代结束的标志是交付一个增量。螺旋模型:每次迭代历经笛卡儿坐标系中四个象限的四个方面活动,RUP:每次迭代历经九个核心工作流程中的若干个。不同点:螺旋模型未给出每次迭代过程结束交付的增量原型的具体要求;也未给出不同次迭代在历经的笛卡儿坐标系中四个象限的四个方面活动的内容与重点的不同。RUP将整个生命周期划分为四个阶段,明确给出了每个阶段内的若干次迭代过程完成后交付的增量的具体要求,即四个阶段的主要里程碑——生命周期目标里程碑、生命周期构架里程碑、最初操作性能里程碑和产品发布里程碑;同时详细阐述了不同阶段中的不同迭代过程历经的九大核心工作流程中活动内容的重点和强度的不同;提供了对每次迭代过程中不同核心工作流程活动的并行化支持。RUP的二维生命周期结构对“迭代”意义的体现比螺旋模型更深刻、具体、详尽、全面,更具可操作性。
7.RUP的优点:相对瀑布类模型:将成本风险进一步降低为获得一次增量所需费用;进一步降低了产品不能按计划投放市场的风险;使项目开发更能适应项目需求的变化。相对螺旋类模型:用于指导需求不明确、不稳定的项目开发时具有更强的可操作性。
8.RUP人员——角色:分析员、开发人员、测试员、经理、其他角色。角色的意义:将角色与个体区分开。某种角色:一个或多个相互协作的个体完成,一个个体:担任一种或多种角色。制定迭代计划:确定每个阶段、每个工作流程中需要的角色;制定人员计划:考虑人员的技能、能力经验,将一个或多个角色分配给一个适合的人员完成。有效提高了项目中人力资源的利用率。缺陷:论述不够深入,忽略了角色的质量,未给出角色的组织管理方式、角色间的相互地位关系和交互方式。体现过程可操作性的一个重要方面,RUP未给出。
9.RUP方法:(1)用例及用例驱动。用例是能够向用户提供有价值结果的系统中的一种功能。所有的用例合在一起构成用例模型。采用用例的两个原因:①用例被证明是捕获需求的一种有效方法。达到需求捕获的第一个目标:发现多样性的需求(传