Homework2 of Software-System-Analysis-and-Design
1、简答题
简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点
瀑布模型(Waterfall Model)是最早出现的软件开发模型,在软件工程中占有重要地位,它提供了软件开发的基本框架,其主要优缺点如下:
- 优点
- 为项目提供了按阶段划分的检查点 - 有利于大型软件开发过程中人员的组织、管理
- 有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率
- 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导
- 缺点
- 开发过程一般不能逆转,否则代价太大 - 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险
- 严格的分级导致了该模型的自由度降低
- 不适应用户需求的变化
增量模型(Incremental Model)是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件,其主要优缺点如下:
- 优点
- 将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展 - 降低了软件开发的风险,一个开发周期内的错误不会影响到整个项目的进展 - 提高了开发灵活性
- 缺点
- 由于进度和配置的复杂性,可能会增大管理成本,超出组织的能力 - 容易退化为边做边改模型,从而使软件过程的控制失去整体性
螺旋模型(Spiral Model)将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统,其主要优缺点如下:
- 优点
- 设计上的灵活性,可以在项目的各个阶段进行变更 - 以小的分段来构建大型系统,使成本计算变得简单容易 - 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性
- 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互
- 缺点
- 过多的迭代次数会增加开发成本,延迟提交时间 - 过于灵活的开发过程不利于已经签署合同的客户与开发者之间的协调
- 过分依赖风险分析经验与技术,一旦在风险分析过程中出现偏差将造成重大损失
简述 UP 的三大特点,其中哪些内容体现了用户驱动的开发,哪些内容体现风险驱动的开发?
三大特点:
- 迭代式增量开发:每一次迭代都会产生一个新的版本,并且得到用户对该版本的反馈,进一步调节下一次迭代的重心
- 以架构建筑为中心:UP 坚持认为架构是项目团队努力塑造系统的核心。由于没有单个模型足以涵盖系统的所有方面,统一过程支持多种体系结构模型和视图
- 用例驱动:用例驱动既做到了以客户为中心,以客户的角度看系统,为客户创建真正可用的系统的构造方式,又解决了传统面向对象方法面临的无法有效的从需求中提取对象的困难,从而填平了需求分析方法和对象设计方法之间的鸿沟
其中用例驱动体现了用户驱动的开发,迭代式增量开发体现了风险驱动的开发
UP 四个阶段的划分准则是什么?关键的里程碑是什么?
四个阶段为:初始阶段 (Inception)、精化阶段 (Elaboration)、构建阶段(Construction) 和产品交付阶段 (Transition)。
划分准则:每个阶段以一个主要的里程碑结束,并在里程碑处执行一次评估,评判是否满足目标。满足目标后则进入下一个阶段。故阶段划分的准则为开发生命周期中不同的关键里程碑
各个阶段的关键里程碑分别如下:
- 初始阶段:生命周期目标里程碑,用于评价项目基本的生存能力
- 细化阶段:生命周期架构里程碑,为系统的结构建立了管理基准,并使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目标和范围、结构的选择以及防范的主要风险的解决方案
- 构造阶段:初始运作能力里程碑,该里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统运作
- 移交阶段:产品发布里程碑,此时要确定目标是否实现,是否应该开始另一个开发周期
IT 项目管理中,“工期、质量、范围/内容” 三个元素中,在合同固定条件下,为什么说“范围/内容”是项目团队是易于控制的
因为工期是由客户和团队协商签订的合同所确定的,而质量则由接收方在合同中既定要求且在接收后进行审核的,只有范围和内容是受到团队管理的,团队可以在保证产品质量的条件下,适当增删一些内容,以更好的完成项目
为什么说,UP 为企业按固定节奏生产、固定周期发布软件产品提供了依据?
-
UP 的将软件开发周期从时间上分为四个阶段,每个阶段包括一个主要的里程碑。阶段是两个主要里程碑的分隔,在各个阶段结束时,执行评估阶段目标是否满足以决定是否进入下一个阶段。因此UP提供了固定节奏的生产。
-
UP 是一个风险驱动的生命周期模型,为了有效地控制风险,UP 以渐进的方式进行演进,首先解决高风险的问题,这主要是通过迭代来实现。在软件生命周期中,每个阶段可以划分为多个迭代,每个迭代确定一个内部里程碑(或一个发布)。因此,UP 也为固定周期发布软件产品提供了依据。
2、项目管理使用
展示团队的任务 Kanban
以下是我们七人小组的团队任务 kanban