简答题
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点。
从项目特点、风险特征、人力资源利用角度思考
瀑布模型
瀑布模型试图在编程之前详细定义所有或大部分需求,通常在编程之前创建出完整的设计,会试图在开始前定义“可靠的”计划或时间表,但往往事与愿违。
瀑布模型带来了高失败率,低生产率和高缺陷率。原因:软件开发的需求是时常变化的。变更对于软件项目来说是永恒的。计划很难是一成不变的,几乎不可能在开始阶段就确立好详细计划。计划必须要随项目进行而动态修改,以适应新的需求和风险。
增量模型
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
增量模型适用于具有以下特征的软件开发项目:
- 软件产品可以分批次地进行交付。
- 待开发的软件系统能够被模块化。
- 软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。
- 项目管理人员把握全局的水平较高。
增量模型对软件设计有更高的技术要求,特别是对软件体系结构,要求它具有很好的开放性与稳定性,能够顺利地实现构件的集成。增量构件要求具有相当好的功能独立性,其接口应该简单,以方便集成时与系统的连接。$[1]$
螺旋模型
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。$[2]$
简述统一过程三大特点,与面向对象的方法有什么关系?
- 可伸缩性(scalable):不需要使用统一过程的全部框架,只需要有用的部分。
- 有效性(effective): 统一过程已被大量项目成功实践。
- 用已有的实践方法提高生产效率(productivity)。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
划分准则是达成里程碑的时间点。
初始阶段
生命周期目标里程碑:评价项目基本的生存能力。细化阶段
生命周期结构里程碑:为系统的结构简历管理基准并使得项目小组能够在构建阶段中进行衡量,需要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。构造阶段
初始功能里程碑:决定产品是否可以在测试环境中进行部署,要确定软件、环境、用户是否可以开始系统的运作。交付阶段
产品发布里程碑:确定目标是否实现,是否应该开始另一个开发周期。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
软件企业可以按固定节奏生产,固定周期发布软件产品,是因为软件企业有规范的管理体系和方法,了解软件的本质特征,能够很好地认识项目的工期、质量、范围、预算,遵循先做到再做好的原则,运用了正确的开发模型。
它可以使得企业项目管理具有明确的阶段划分,由于每个阶段都会有显著的里程碑,使得每个迭代阶段都有明确的目标。这反逼项目管理确定合理的产品范围,不投入大量时间在冗余的工作中,从而提到团队生产效率。