本文主要是介绍系统分析与设计:第三次作业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简答题
1、简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
注:从项目特点、风险特征、人力资源利用角度思考
-
瀑布模型
- 简述
将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了他们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 - 优点
- 为项目提供了按阶段划分的检查点。
- 当前一阶段完成后,您只需要去关注后续阶段。
- 可在迭代模型中应用瀑布模型。
- 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
- 缺点
- 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
- 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
- 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
- 瀑布模型最突出的缺点是不适应用户需求的变化,在项目各个阶段之间缺少反馈
- 简述
-
增量模型
- 简述
软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。 - 优点
- 第一个可交付版本所需要的成本和时间是较少的,从而可减少开发由增量表示的小系统承担的风险。
- 由于版本迭代较快,可以减少用户需求的变更。而且每次增量交付过程中获取的经验,有利于后面的改进,客户也有机会对建立好的模型作出反应。
- 风险分布到几个更小的增量中,而不是集中于一个大型开发中,降低了失败和更改需求的风险。
- 允许增量投资,即在项目开始时可以仅对一个或两个增量投资
- 缺点
- 如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定。增量模型在使用时必须确保后期加入构件必须不能破坏已构造好的系统部分。
- 如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
- 简述
-
螺旋模型(含原型方法)
- 简述
综合了瀑布模型和演化模型的优点,还增加了风险分析,特别适合于大型复杂的系统。采用螺旋模型时,软件开发演着自内向外旋转,每转一圈都要对风险进行识别和分析。 - 优点
- 设计灵活,可以在项目的任何阶段进行变更。
- 以小的分段来构建大型系统,使成本计算变得简单容易。
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
- 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
- 缺点
- 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识
- 在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失
- 过多的迭代次数会增加开发成本,延迟提交时间。
- 很难让用户确信这种演化方法的结果是可以控制的。
- 简述
2、简述统一过程三大特点,与面向对象的方法有什么关系?
- 三大特点
- 软件开发是一个迭代过程
- 软件开发是由Use Case(用例)驱动的,
- 软件开发是以架构设计(Architectural Design)为中心的
- 关系
- 统一软件过程(RUP)是一种基于UML的、以构架为中心的、用例驱动与风险驱动相结合的迭代增量过程。它将软件开发过程要素和软件工件要素整合在统一的软件工程框架中,是一个面向对象的程序开发方法论。
3、简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
-
划分准则
RUP 中的软件生命周期在时间维度上被分解为四个顺序的阶段:初始阶段 (Inception)、精化阶段 (Elaboration)、构建阶段(Construction) 和产品交付阶段 (Transition)。每个阶段结束于一个主要的里程碑 (Major Milestone),并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。 -
每个阶段关键的里程碑
- a. 初始阶段:生命周期目标(Lifecycle Objective)里程碑。生命周期目标里程碑评价项目基本的生存能力。包括一些重要的文档,如:项目构想 (Vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。通过对文档的评审确定用例需求理解正确、项目风险评估合理、阶段计划可行等。
- b. 细化阶段:生命周期结构(Lifecycle Architecture)里程碑。包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。
- c. 构造阶段:初始功能(Initial Operational)里程碑。包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。
- d. 交付阶段:产品发布(Product Release)里程碑。确定目标是否实现,是否应该开始产品的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。
4、软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
- 原因
因为软件企业使用统一软件过程进行软件开发和管理,而统一软件过程是也迭代过程。RUP(统一软件过程)中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。 - 好处
- 每个迭代都是瀑布的工作流程
- 每个迭代产品在增量(制品是可运行的),利于及时交付使用并反馈
- 固定的迭代周期(等量的人月),利于量化团队/个人生产率
这篇关于系统分析与设计:第三次作业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!