第3讲rup与xp内容摘要:

迭代和增量的 上海交通大学计算机科学与工程系 2020/11/4 35 迭代和增量的含义 (1)  大型软件开发是一个艰巨的任务,划分为较小的部分或者袖珍项目( miniproject)是切实可行的。  每个袖珍项目都是一次能产生一个增量的迭代过程,迭代是指工作流中的步骤,而增量是指产品中增加的部分。  为了获得最佳效果,迭代过程必须是受控的(controlled) 上海交通大学计算机科学与工程系 2020/11/4 36 迭代和增量的含义 (2)  统一过程生命周期模型  统一过程是在重复一系列组成系统的生命周期的循环,每次循环都以向用户提供一个产品版本作为终结。  每次循环都包括初始、细化、构造和移交。 每个阶段又细分为多次迭代过程 上海交通大学计算机科学与工程系 2020/11/4 37 迭代和增量的含义 (3)  产品的增量化  每次循环都产生系统的一个新的版本,每个版本都是一个准备交付的产品。 它包括由能够编译和运行的构件所体现的源代码体、各种手册和相关的交付品。  产品还包括需求、用例、非功能性需求和测试用例,还包括构架和可视化的模型( UML模型) 上海交通大学计算机科学与工程系 2020/11/4 38 循环包含的阶段 (1) 上海交通大学计算机科学与工程系 2020/11/4 39 循环包含的阶段 (2) 上海交通大学计算机科学与工程系 2020/11/4 40 循环包含的阶段 (3)  初始阶段 (Inception Phase)  初始阶段最重要的目标是在项目涉及者中就项目的生命周期目标达成共识。  初始阶段的重要性在于项目开始前,我们必须弄清楚业务和需求的风险。  对一个关注于对现有系统进行改善的项目,初始阶段可以短一些,但是仍旧必须关注于项目是否值得去做和做的可能性。 上海交通大学计算机科学与工程系 2020/11/4 41 循环包含的阶段 (3)续  细化阶段 (Elaboration Phase )  细化阶段的目标是确定系统架构的基线,从而为设计和实现奠定一个基础。  架构是根据最重要的需求(对系统的架构有显著影响的)和风险评估来进行的。 架构的稳定性通过一个或两个架构原型来进行评估。 上海交通大学计算机科学与工程系 2020/11/4 42 循环包含的阶段 (3)续  构造阶段 (Construction Phase )  构造阶段的目标针对的是余下的需求和架构基线来完成系统的开发。 构造阶段是一种制造过程,强调对资源和活动的控制,以优化成本、计划和质量。  因此,管理的重心从初始和细化阶段的智力产品转化为对可以部署的产品的开发上。 上海交通大学计算机科学与工程系 2020/11/4 43 循环包含的阶段 (3) 交付阶段 (Transition Phase )  交付阶段的重点是保证软件对其终端用户可用。  交付阶段可以跨越多个迭代,并包含在准备发行版本前的测试,以及基于用户反馈的小的调整。 在生命周期的该阶段,用户的反馈主要集中在对产品的细小的调整,配置,安装和可用性上。 所有主要的结构方面的问题已经在早期定义下来了。 上海交通大学计算机科学与工程系 2020/11/4 44 迭代 (1)  一次迭代中确定的目标:  一组用例,这些用例合起来能够扩展所开发产品的可用性  解决最突出的风险问题  为了在开发过程中达到最佳的效益,项目组应设法选择实现项目目标所需要的迭代过程,并按照一定的逻辑顺序来排列这些过程 上海交通大学计算机科学与工程系 2020/11/4 45 迭代 (2)  为什么要迭代  传统的方法中,项目是采用一种顺序方法,从一个部门流向另一个部门,这就是典型的瀑布模型 :  该方法导致的结果是在最后产品构造和测试的时候,问题堆积现象的出现。 由于问题在分析,设计和实现阶段都潜伏下来,直到最后问题暴露出来,导致一个长时间的 BUG处理过程。 上海交通大学计算机科学与工程系 2020/11/4 46 迭代 (2)  一个比较柔性(和风险更小的)的方法是在不同的开发部门中将项目迭代多次,从而对用户需求的了解更为清晰,系统的架构也更为可靠,开发组织也逐步成熟,最终通过交付一系列版本而使系统逐步完善。 这就是迭代生命周期。 每一个经过各部门的过程序列都被称为一次迭代。 上海交通大学计算机科学与工程系 2020/11/4 47 迭代 (2) 上海交通大学计算机科学与工程系 2020/11/4 48 迭代 (2)  因此,从开发角度看,软件的生命周期就是一系列的迭代构成的,通过这些迭代,软件越来越完善。 每一次迭代都将提交一个可执行的产品。 该产品可能是最终版本的一个子集,但是从工程或用户的观点看,是有用的。 每一次释放,都伴随着下列产品: 版本描述,用户文档,计划等等,以及系统模型的更新。 上海交通大学计算机科学与工程系 2020/11/4 49 迭代 (2)  迭代方法的主要结果是产品集,变得越来越完整和成熟,如下图所示 上海交通大学计算机科学与工程系 2020/11/4 50 例子  学生选课系统的开发计划 上海交通大学计算机科学与工程系 2020/11/4 51 上海交通大学计算机科学与工程系 2020/11/4 52 上海交通大学计算机科学与工程系 2020/11/4 53 上海交通大学计算机科学与工程系 2020/11/4 54 4 统一过程最佳实践 上海交通大学计算机科学与工程系 2020/11/4 55 最佳实践 上海交通大学计算机科学与工程系 2020/11/4 56 最佳实践:迭代化开发 (1) 上海交通大学计算机科学与工程系 2020/11/4 57 最佳实践:迭代化开发 (2) 在瀑布模型中,直到生命周期结束时,你才能验证系统 上海交通大学计算机科学与工程系 2020/11/4 58 最佳实践:迭代化开发 (3)  在一个迭代周期中,你需要根据关键风险列表选择开发的内容。 由于每一次迭代的产品都是可执行的,因此,你可以判断你是否将目标风险进行了转移。 上海交通大学计算机科学与工程系 2020/11/4 59 最佳实践:管理需求  如果要去管理困难,哪些技巧是需要你的组织进行培养的呢。 我们认为下列能力是重要的:  问题分析  理解需求  系统定义  管理项目的边界  细化系统定义  管理需求变更 上海交通大学计算机科学与工程系 2020/11/4 60 最佳实践:使用组件架构 上海交通大学计算机科学与工程系 2020/11/4 61。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。