简答题
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
瀑布模型
优点:
- 瀑布模型中的每个阶段都有一个里程碑,可作为检查点。
- 强调了软件开发过程中,分析与设计的重要性,降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性。
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接。
缺点:
- 开发过程一般不可逆转,缺乏灵活性。
- 风险控制能力较弱,开发末期才能见到成果。
- 瀑布模型中的软件活动是文档驱动的,容易造假。
- 知识技能需求不同,人员数量要求不同,易出现人力资源问题。
增量模型
优点:
- 在原有的瀑布模型的基础上改良,具有瀑布模型的优点。
- 人力资源利用率高,使用了多流水的工作模式,可以充分利用人员的工作时间。
- 开发灵活,一个周期的错误不至于影响整个项目,更开放、更稳定,扩展性强。
- 提高系统的稳定性和可维护性,复用性强。
缺点:
- 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度。
- 增量粒度难以选择。
- 系统难以进行模块化。
- 存在边做边改的现象,难以整体把控进度。
螺旋模型(含原型方法)
优点:
- 引入了明确的风险管理机制,便于风险控制。
- 灵活。也是可以进行阶段性变更,尤其适用于需求不太明确的情况。
- 风险驱动的迭代过程,强调可选方案和约束条件从而支持软件的重用,提高产品质量。
- 循序渐进。每个阶段都保证了客户的参与,防止产品偏离客户需求,同时让客户了解进度,及时进行沟通。
缺点:
- 螺旋模型强调风险分析,需要专业的人士完成这个任务,但要求许多客户接受并相信这种分析,是不容易的。
- 风险分析需要耗费相当的成本,只适用于大规模软件开发,小型软件用螺旋模型得不偿失。
- 过多的迭代和需求变更会导致项目延期。
简述统一过程三大特点,与面向对象的方法有什么关系?
统一过程是一种以用例驱动、以体系结构为核心、迭代及增量的软件过程模型,由UML方法和工具支持,广泛应用于各类面向对象项目。
详细来说,它的三大特点有:
- 用例驱动。用例驱动表明开发过程是沿着一个流前进的,用例便是用户与系统交互的具体情景,可以根据用例明确系统的业务需求、服务范围。
- 以体系结构为核心。构架刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特性。每一种产品都具有功能和表现形式两个方面,其中功能与用例相对应,表现形式与构架相对应。
- 迭代及增量开发。软件开发是一项复杂的过程,因此可以将这些项目划分为切实可行并能够产生一个增量的迭代过程。迭代是指工作流中的步骤,增量是指产品中增加的部分。
与面向对象的关系:统一过程使用面向功能类编程,架构设计接口,很符合面向对象的基本策略和思想。可以说,统一过程是面向对象开发的最佳实践。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
统一过程按照其工作与迭代在时间上被分为四个顺序的阶段,每个阶段关键的里程碑分别为:
初始阶段(inception phase):
- 包括用户沟通和计划活动两个方面,强调定义和细化用例,并将其作为主要模型;
- 生命周期目标里程碑,评价项目基本的生存能力;
细化阶段(elaboration phase):
- 包括用户沟通和建模活动,重点是创建分析和设计模型,强调类的定义和体系结构的表示;
- 生命周期结构里程碑,为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量;
构建阶段(construction phase):
- 将设计转化为实现,并进行集成和测试;
- 初始功能里程碑,决定了产品是否可以在测试环境中进行部署;
交付阶段(transition phase):
- 将产品发布给用户进行测试评价,并收集用户的意见,之后再次进行迭代修改产品使之完善;
- 产品发布里程碑,确定目标是否实现,是否应该开始另一个开发周期;一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
软件企业采用基于统一过程的软件项目规划,利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度),使得软件生产按固定节奏生产、固定周期发布软件产品提供了依据。在统一过程模型中,各个阶段的生命周期是有固定长度的,因此在产品的的迭代开发过程有较为明确的时间限制。在这种生命周期方法中,开发被组织成一系列固定的短期小项目,小步骤,快速反馈和调整是迭代开发的主要思想,时间定量也是迭代开发的关键思想。每次迭代都具有各自的需求分析、设计、实现和测试活动。
给企业项目管理带来的好处:
- 企业能够根据这个固定的周期更加方便地掌控开发的进度,
- 可以提出一个软件体系架构来指导开发,
- 在满足日程的前提下,尽可能地提高产品的质量。