1、简单题
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
- 从项目特点、风险特征、人力资源利用角度思考
答:
瀑布模型:
瀑布模型中的每一个开发活动具有下列特征:
- 本阶段活动的工作对象来自于上一项活动的输出,这些输出一 般是代表本阶段活动结束的里程碑式的文档。
- 根据本阶段的活动规程执行相应的任务。
- 本阶段活动产出相关的软件工件,作为下一阶段活动的输入。
- 对本阶段活动执行情况进行评审。
瀑布模型优点:
降低软件开发的复杂程度,提高软件开发过程的透明性,提高 软件开发过程的可管理性。
推迟软件实现,强调在软件实现前必须进行分析和设计工作。
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进 行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开 发过程中存在的缺陷,使产品达到预期的质量要求。
瀑布模型缺点:
- 强调过程活动的线性顺序。
- 缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题。
- 风险控制能力较弱。
- 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的 文档时,会极大地增加系统的工作量。
- 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往 往会产生错误的结论。
增量模型:
增量模型首先对系统最核心或最清晰的需求进行分析、设计、实现、 测试并集成到系统中,再按优先级逐步实现后续需求。
增量模型优点:
- 增强客户对系统的信心;
- 降低系统失败风险;
- 提高系统可靠性;
- 提高系统的稳定性和可维护性。
增量模型缺点:
- 建立初始模型时,作为增量基础的基本业务服务的确定有一定 难度;
- 增量粒度难以选择。
螺旋模型:
螺旋模型是风险驱动的迭代过程,强调可选方案和约束条件从 而支持软件的重用,有助于将软件质量作为特殊目标融入产品 开发之中。螺旋模型结合了瀑布模型和快速原型方法,将瀑布 模型的多个阶段转化到多个迭代过程中,以降低项目的风险。
螺旋模型优点:
- 针对大型软件项目的开发 ,引入了明确的风险管理机制。
- 设计上的灵活性,可以在项目的各个阶段进行变更
- 以小的分段来构建大型系统,使成本计算变得简单容易。
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
- 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
- 客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
螺旋模型缺点:
螺旋模型的应用有一定的限制条件。 螺旋模型强调风险分析,但说服外部客户接受和相信分析结果并做出相关反应并不容易,因此螺旋模型往往比较适合内部的大规模软件开发。
风险分析需要耗费相当的成本,因此螺旋模型比较适合投资规模较大的软件项目。失误的风险分析可能带来更大的风险
建设周期长,而[软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
简述统一过程三大特点,与面向对象的方法有什么关系?
答:
三大特点:
- 用户为中心(描述用户使用产品的故事)
- 架构为重心(软件产品分解的领域最佳实践)
- 风险驱动(早期暴露风险)
与面对对象的方法的关系:
在设计阶段,需要将系统组织为具有良好接口的设计包和设计组系统,并体现类的对象之间的作用关系。
实现阶段层次化子系统,定义代码组织结构。以组件的形式实践类和对象。在测试集成阶段需要测试类本身的功能和类间作用关系。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
答:统一过程四个阶段的划分准则是时间维度。RUP中的软件生命周期在时间维度上被分解为四个顺序的阶段: 初始阶段(Inception)、精化阶段(Elaboration)、构建阶段 (Construction) 和产品交付阶(Transition)。每个阶段结束于一 个主要的里程碑(Major Milestone),并在阶段结尾执行一次评 估以确定这个阶段的目标是否已经满足。如果评估结果令人满 意的话,可以允许项目进入下一个阶段。
初始阶段里程碑:
- 生命周期目标(Lifecycle Objective) 里程碑,包括一 些重要的文档,如:项目构想(Vision)、原始用例模型、原 始业务风险评估、一个或者多个原型、原始业务案例等。 通过对文档的评审确定用例需求理解正确、项目风险评估 合理、阶段计划可行等。
精化阶段里程碑:
- 生命周期体系结构(Lifecycle Architecture) 里程碑, 包括风险分析文档、软件体系结构基线、项目计划、可执 行的进化原型、初始版本的用户手册等。通过评审确定软 件体系结构已经稳定、高风险的业务需求和技术机制已经 解决、修订的项目计划可行等。
构建阶段里程碑:
- 初始运行能力(Initial Operational Capability) 里程碑, 包括可以运行的软件产品、用户手册等,它决定了产品是 否可以在测试环境中进行部署。此刻,要确定软件、环境、 用户是否可以开始系统的运行。
产品化阶段/移交阶段:
- 产品发布(Product Release) 里程碑,确定最终目标 是否实现,是否应该开始产品下一个版本的另一个开发周 期。在一些情况下这个里程碑可能与下一个周期的初始阶 段相重合。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
答:利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度),使得软件生产按固定节奏运行,固定迭代周期、固定开发周期、固定升级周期。
它给企业项目管理带来的好处:
- 软件项目开发更加规范化,便于项目的管理
- 每个迭代产品在增量(制品是可运行的),利于及时交付使用并反馈,满足用户需求,降低风险
- 固定的迭代周期(等量的人月),利于量化团队/个人生产率,提高企业盈利。