【2017年整理】软件工程之软件开发模型.ppt
文本预览下载声明
螺旋模型 完整的螺旋模型图 制定计划 风险分析 客户评估 工程实施 螺旋模型是一种迭代模型,每迭代一次,螺旋线就前进一周。当项目按照顺时针方向沿螺旋移动时,每一个螺旋周期包含了风险分析,并且按以下4个步骤来进行: (1)确定目标,选定方案,设定约束条件,选定完成本周期所定目标的策略。 (2)分析该策略可能存在的风险。必要时通过建立一个原型来确定风险的大小,然后据此决定是按原定目标执行,还是修改目标或终止项目。 (3)在排除风险之后,实现本螺旋周期的目标,例如,第一圈可能产生产品的规格说明,第二圈可能产生实现产品设计等。 (4)最后一步是评价前一步的结果,并且计划下一轮的工作。 2.5 螺旋模型 优点: 结合瀑布模型和原型模型的优点 风险分析可使一些极端困难的问题和可能导致费用过高的问题被更改或取消 缺点: 螺旋模型开发的成败,很大程度上依赖于风险评估的成败。需要开发人员具有相当丰富的风险评估经验和专门知识 一般使用场合: 需求不能完全确定,同时又存在技术、资金或开发时间等风险因素的大型开发项目。 2.5 螺旋模型 2.6 XP开发模型 2.6.1 XP开发模型概要 XP极限编程(eXtreme Programming)是一种敏捷(Agile)开发方法,以编码为核心任务的,供中小型小组用于开发需求快速变化的软件。 敏捷是什么?敏捷已经成为当今描述现代软件过程的时髦用词。每个人都是敏捷的,敏捷团队是能够适当响应变化的灵活团队。变化就是软件开发本身,软件构建有变化,团队成员在变化、使用新技术带来变化,各种 变化都会对开发的软件产品以及项目本身造成影响。我们必须接受“支持变化”的思想,它应当根植于软件开发中的每一件事中,因为这是软件的心脏与灵魂。敏捷团队意识到软件是团队中所有人共同开发完成的,这些人的个人技能和合作能力是项目成功的关键所在。 敏捷方法是为了克服传统软件工程中认识和实践的弱点开发而成的(Jim Highsmith说:“传统方法学家陷入了误区,乐于生完美的文档而不是满足业务需要的可运行系统”)。敏捷开发可以带来多方面的好处,但它并不使用于所有的项目、所有的方面、所有的人和所有的情况,它并不完全对立于传统的软件工程实践。 XP有四部分组成:价值、原则、活动和实践 XP的4种价值观: 交流:侧重口头交流,而不是文档、报表和计划。因而,人际关系显得尤为重要。 简化:在管用的前提下,做最简单的事。目标放在客户当前的需求上,摒弃了过多的文档。 反馈: 通过及时地单元测试和功能测试获得快速反馈。 快速地编写软件,然后向客户演示。为确保准确性和高质量,获取客户关于到目前为止的进度的反馈是至关重要的。 勇气: 提倡积极面对现实和处理问题的勇气 快速工作并在必要时重新进行开发的勇气。 2.6.1 XP开发模型概要 XP的指导原则: 快速反馈:开发人员通过简短的反馈循环迅速了解其当前产品是否满足了客户的需求。 简单性假设:将每个问题都视为很容易解决。只需为当前迭代打算,而无需洞察未来可能需要什么。 逐步修改:通过一系列细微的修改来解决问题。 拥抱变化:包容变化,提倡变化。 高质量的工作:工作质量决不可打折扣。XP采用测试先行的编程方式,强调编码和测试的重要性。 2.6 XP开发模型概要 XP活动: 倾听:积极倾听。 测试:非“马后炮”式的测试。编码之前编写测试用例。 编码:编写代码是一种工艺,通过重构、结对编程和代码复核等实践得以改进。 设计:设计是不断演化的,并非固定的,不能赋予它单个职责,而是基于小组的,动态的。 2.6.1 XP开发模型概要 XP实践: 实践 描述 ?规则游戏 ?规则游戏的职责是快速制定下一次发布或迭代的高级规划 ?小型发布 ?XP周期提供业务价值的频繁发布组成 ?隐喻 ?隐喻是用于描述项目的通用观点、术语和语言 ?简单设计 ?从XP的角度说,简单意味着代码完成的是最简单、惯用的 ?测试 ?测试首先被开发,然后再测试装置中实现 ?重构 ?不改变系统中可见行为的前提下,对已有的代码设计进行改进 ?结对编程 ?两位开发人员坐在同一台工作站前,一起完成开发任务 ?集体拥有 ?任何小组成员能够在任何时间对代码的任何部分进行修改 ?持续集成 ?每天对系统组件进行多次的集成 ?每周工作40小时 ?加班加点,无法确保高质量和高性能。XP要求正常的工作时间,以确保质量。不要连续两个星期都加班 ?现场客户 ?团队中加入一位真正的、起作用的用户,他将负责全职回答问题 ?编码标准 ?编码标准是一系列的约定,所有人在开发时都必须遵守 2.6.1 XP开发模型概要 2.6.1 XP开发模型概要 XP关键特征: 明确的反馈:早期的明确反馈。 逐步规划:“让我们对现在知道的进行规划,然后在发生变化时,不断地重新规范” 测试
显示全部