简单题
-
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点(从项目特点、风险特征、人力资源利用角度思考)
瀑布模型
是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。如果有信息未被覆盖或者发现了问题,则返回上一个阶段并进行适当的修改,项目开发进程从一个阶段流动到下一个阶段,这就是瀑布模型名称的由来。优点:
- 降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性
- 推迟软件实现,强调在软件实现前必须进行分析和设计工作
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行直到,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求
缺点:
- 开发过程一般不能逆转,否则代价太大,特别是在开发的后期
- 实际项目开发很难严格按照该模型进行
- 风险控制能力较弱
- 客户往往很难清楚的给出所有的要求,而该模型却要求如此
- 软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心
增量模型
是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。优点:
- 人员分配灵活,刚开始不用投入大量人力资源
- 如果核心产品很受欢迎,可以增加人力实现下一个增量
- 降低软件开发失败风险
- 可以先发布部分实现的功能给用户,增加用户信心
缺点:
- 并行开发构建有可能遇到不能集成的风险,软件必须具备开放式的体系结构
- 难以很好地选择合适的增量幅度
- 增量模型的灵活性,使其适应变化的能力大于瀑布模型,但是也容易退化为边作边改模型,从而失去控制整体性
螺旋模型
是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。其最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。优点:
- 设计上具有灵活性,可以在项目的的各个阶段进行变更
- 以小的分段来构建大型系统,使成本计算变得简单容易
- 客户始终参与每个阶段的开发,保证项目不偏离正确方向,项目具有可控性
- 随着项目推进,客户掌握项目的最新信息,从而能和管理层有效交互
缺点:
- 采用螺旋模型需要相当丰富的风险评估经验和专门队知识
- 风险较大的项目开发中,如果未能够及时标识风险,将造成重大损失
- 过多的迭代次数会增加开发成本,延迟提交时间
-
简述统一过程三大特点,与面向对象的方法有什么关系?
统一软件过程的特点:用例驱动、以构架为中心、迭代和增量的软件过程框架- 统一过程是用例驱动的:
所有的用户和用例组合在一起就是用例模型,它描述了系统的全部功能。用例图促使我们从系统对用户的价值方面来考虑问题,是站在用户的角度出发,以人为本。并且用例图不仅能确定用户的需求,还可以驱动系统设计、实现和测试的进行,也就是说用例可以驱动开发过程。用例驱动表明开发过程是沿着一个流——一系列从用例得到的工作流前进的:用例被确定、用例被设计、最后用例又称为测试人员构造测试用例的基础 - 统一过程是以构架为中心的:
每一种产品都具有功能和表现形式两个方面,其中功能与用例相对应,表现形式与构架相对应。因此用例在实现时必须适应于构架,然而随着系统的发展,用例也在不断的进化,所以构架必须设计得使系统能够进化,不仅要考虑系统的初始开发,而且要考虑将来的发展。为了能够找到这样的一种表现形式(构架),构架师必须从全面了解系统的主要功能(即主要用例)入手,这些主要的用例构成了系统的核心功能。 - 统一过程是迭代和增量的过程:
迭代是工作流中的步骤, 增量是产品中增加的部分,为了获得最佳效果,迭代过程必须是受控的
与面向对象的方法的关系:
统一软件开发过程是基于面向对象方法和UML统一建模语言的,以架构为中心,用例驱动与风险驱动相结合的,迭代和增量软件过程。它将软件开发过程要素和软件工件要素整合在统一的软件过程框架中,是一个面向对象的程序开发方法论
- 统一过程是用例驱动的:
-
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
每次迭代都要经历一定的时间,这个迭代的时间又可以分为四个阶段:初始、细化、构造和移交。而在每个阶段,管理人员或开发人员又可以将本阶段的工作进一步划分为多次迭代过程以及每次迭代过程所产生的增量。每个阶段都以一个里程碑作为结束标记,并可以获得一组可用的制品来定义每个里程碑。- 初始阶段
- 该过程主要编制简要的愿景文档、 业务案例、 确定范围、 粗略评估成本
- 里程碑:生命目标周期里程碑
- 细化阶段
- 细化愿景文档、 迭代地实现核心构架、 解决高风险的问题、 定义大多数的需求和范围、 进一步评估成本
- 里程碑:生命周期体系结构里程碑
- 构造阶段
- 迭代地实现系统的其余部分、 准备部署,此阶段可以在测试环境中部署
- 里程碑:初始运行能力里程碑
- 移交阶段
- 该阶段进行beta 测试、部署
- 里程碑:产品发布里程碑,确定最终目标是否实现,是否开始下一个版本的开发周期,某些情况下这个里程碑可能与下一个周期的初始阶段重合
- 初始阶段
-
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
统一过程为企业按固定节奏生产,固定周期发布软件产品提供了依据。
统一过程包括初始阶段、细化阶段、构建阶段和交付阶段四个阶段,每个阶段都有明确的目标、里程碑,每个阶段结束时都要进行目标评估,如果达到目标就进入下一个阶段。在明确的目标导向下,软件企业能够以更高的效率进行生产开发,明确的目标使得每个阶段/里程碑能够在固定周期达成,从而使得整个软件项目能够有固定的开发周期。因此软件企业能按固定节奏生产、固定周期发布软件产品。好处:
- 提高团队生产力
- 生产速度加快,能够更早得到一个可运行的系统,鼓舞开发团队的士气
- 生产速度加快,如果发生错误,就有时间做出调整,从而增大项目生存率