系统分析与设计作业3
-
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
从 ** 项目特点 ** 、**风险特征 ** 、**人力资源利用 ** 角度思考- 瀑布模型
- 优点 :在项目特点上,瀑布模型需要在开发和设计前就定义好绝大部分需求,能够在之后的设计和开发中保证能够有完成而且详细的文档可以参考,并且因为是序列的整个项目的时间安排和规划也很好可以设计。非常好管理,是一种最符合直觉的方式,被明确划分的阶段可以保证人力资源方面可以被非常好的调度。并且如果需求和计划得非常好,结果和过程是比较容易预期的,相对而言风险很小。
- 缺点 :与容易被预期共存的缺点就是在灵活性方面有很大缺点,一旦在开发和设计的过程中发现问题(比如需求不现实),再想进行更改就要重新返回之前的阶段,产生了非常大的额外开销(时间和金钱),所以对于客户和pm来说都是一个很大的挑战,要需要能够和客户确定下来非常明确的需求。所以再人力资源利用方面的考虑来说并非是可以做完一阶段就可以不管的,还是需要修改,但是修改之间可能会间隔很长时间,导致人力资源的利用率低下。
- 增量模型
- 优点 : 特点在于整个产品被分解为很多个组件,每一个组件有着不同的优先关系,开发人员可以逐个来进行开发交互,这样也能够保证客户可以不断跟进软件的当前功能,从中得到反馈,并且不断对于需要进行修改,这样保证了每一步的进行都会导致最后对于时间和工作量的预期越来越准确。可以最大程度降低风险。由于组件的工作量相较于整个产品来说较小,对于人力资源的需要可以非常灵活。
- 缺点 :把整个产品进行划分时需要有非常丰富的经验和对于需求有比较深的理解(才可以确定下来优先关系),并且每一个组件的划分大小也需要由需求来决定。
- 螺旋模型
- 优点 : 作为一种周期性的开发方法进行系统开发,使用快速原型法并且每一个项目阶段中间都使用瀑布模型法。相当于时再瀑布模型每一个开发阶段都引入了风险控制的程序,把项目分解成小项目。强调风险分析。设计上非常灵活,可以在项目的各个阶段变更,同时客户始终参与每个阶段的开发,保证项目的可控性。
- 缺点 :采用螺旋模型需要丰富的风险评估经验,如果疏忽导致风险未能够识别,会造成重大损失。同时因为涉及到多次迭代,容易造成规划不好延迟提交时间。
- 瀑布模型
-
简述统一过程三大特点,与面向对象的方法有什么关系?
- 统一过程有用户为中心(描述用户使用产品的故事)、架构为重心(软件产品分解的领域最佳实践)、风险驱动(早期暴露风险)
- 与面向对象的方法关系 : 是开发整个软件的方法框架,除了具体的编程范式,另一重要部分是管理和规划的方法论,是将软件开发过程要素和软件工件要素整合在统一的软件工程框架中,是一个面向对象的程序开发方法论。
-
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
- 划分标准 : 不同的阶段由里程碑来划分,也就是说如果只有完成了这个阶段的里程碑要求才可以进入下一个阶段,也就是说每一个阶段的划分标准就是对应的里程碑的要求。
- 每一个阶段的里程碑
- 初始阶段 : 确定需求,并且分析得到需求的可行性,生成如项目构想,原始用例模型等初始的重要文档。
- 细化阶段 : 通过评审确定软件体系结构已经稳定、如果实现的技术细节已经确定。生成风险分析文档等进一步细化的文档。
- 构建阶段 :完成了可以运行的软件产品和对应用户手册。能够保证软件已经可以进行在测试软件进行部署和测试。
- 交付阶段 :确定最终目标是不是已经实现,是不是已经通过了所有测试和规范。
-
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
首先固定节奏生产、固定周期发布软件产品,都是统一过程所能带来的好处,之所以能够带来这些好处的原因就在于统一过程把开发过程划分成了几个阶段,明确了不同迭代的里程碑与目标,支持 CI/CD 的版本交付,为固定项目周期提供了可能。利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度),使得软件生产按 固定节奏 运行,固定迭代周期、固定开发周期、固定升级周期。
给项目管理带来的好处就是比较好预期整个软件产品的周期,可以更好地在更大的时间尺度上进行管理和规划已经人力资源的调配,可以让整个管理由更加科学的依据。使管理更加方便。