系统分析与设计_作业3
简单题
-
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
-
从项目特点、风险特征、人力资源利用角度思考
答: -
瀑布模型:
- 本阶段活动的工作对象来自于上一项活动的输出,这些输出一般是代表本阶段活动结束的里程碑式的文档。
- 根据本阶段的活动规程执行相应的任务。
- 本阶段活动产出相关的软件工件,作为下一阶段活动的输入。
- 对本阶段活动执行情况进行评审。
- 优点:
- 降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性。
- 推迟软件实现,强调在软件实现前必须进行分析和设计工作。
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求。
- 缺点:
- 强调过程活动的线性顺序。
- 缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题。
- 风险控制能力较弱。
- 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量。
- 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往往会产生错误的结论。
-
增量模型:
- 增量模型首先对系统最核心或最清晰的需求进行分析、设计、实现、测试并集成到系统中,再按优先级逐步实现后续需求。
- 优点:
- 增强客户对系统的信心;
- 降低系统失败风险;
- 提高系统可靠性;
- 提高系统的稳定性和可维护性。
- 缺点:
- 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度;
- 增量粒度难以选择。
- 增量模型首先对系统最核心或最清晰的需求进行分析、设计、实现、测试并集成到系统中,再按优先级逐步实现后续需求。
-
螺旋模型:
- 螺旋模型是风险驱动的迭代过程,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。螺旋模型结合了瀑布模型和快速原型方法,将瀑布模型的多个阶段转化到多个迭代过程中,以降低项目的风险。螺旋模型包括四个象限:
- 确定目标:确定软件项目目标;明确对软件开发过程和软件产品的约束;制定详细的项目管理计划;根据当前的需求和风险因素,制定实施方案,并进行可行性分析,选定一个实施方案,并对其进行规划。
- 识别和解决风险:明确每一个项目风险,估计风险发生的可能性、频率、损害程度,并制定风险管理措施规避这些风险。
- 工程实现:针对每一个阶段的任务要求执行开发和测试活动。
-
准备下一轮迭代:客户使用原型,反馈修改意见;根据客户的反馈,对产品及其开发过程进行评审,决定是否进入螺旋线的下一个回路
- 优点:
- 设计上的灵活性,可以在项目的各个阶段进行变更;
- 以小的分段来构建大型系统,使成本计算变得简单容易;
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;
- 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
- 缺点:
- 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;
- 过多的迭代次数会增加开发成本,延迟提交时间。
- 螺旋模型是风险驱动的迭代过程,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。螺旋模型结合了瀑布模型和快速原型方法,将瀑布模型的多个阶段转化到多个迭代过程中,以降低项目的风险。螺旋模型包括四个象限:
-
-
简述统一过程三大特点,与面向对象的方法有什么关系?
答:- 三大特点为:
- 软件开发是一个迭代过程。
- 软件开发是由Use Case驱动的。
- 软件开发是以架构设计为中心的。
- 统一过程是面向对象的软件开发过程,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持,把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。
- 三大特点为:
-
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
答:- 每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。
-
初始阶段:
- 初始阶段的目标是为系统建立商业案例并确定项目的边界。为了达到该目的必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。
- 里程碑:生命周期目标(Lifecycle Objective)里程碑。
-
细化阶段:
- 细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。为了达到该目的,必须在理解整个系统的基础上,对体系结构作出决策,包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。
- 里程碑:生命周期结构(Lifecycle Architecture)里程碑。
-
构造阶段:
- 在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。
- 里程碑:初始功能(Initial Operational)里程碑。
-
交付阶段:
- 交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整。在生命周期的这一点上,用户反馈应主要集中在产品调整,设置、安装和可用性问题,所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。
- 里程碑:产品发布(Product Release)里程碑。
-
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
答:- 如今的软件开发中,产品的需求不是短时间调查清晰,即需求是开发或使用过程中逐步认清的。因此,上线后不断升级和完善是软件产品基本特征。 软件企业基于统一过程进行软件项目规划,从而明确不同阶段迭代的里程碑与目标,支持 CI/CD 的版本交付,为固定项目周期提供了可能。利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度),使得软件生产按固定节奏运行,固定迭代周期、固定开发周期、固定升级周期。
- 好处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。