因为博客网站服务器经常抽风,所以重新将作业备份并提交。以下截图证明作业完成时间。
简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点,从项目特点、风险特征、人力资源利用角度思考
瀑布模型
优点
- 降低了软件开发的复杂度,提高软件开发的透明性,提高软件开发过程中的可管理性;
- 推迟软件实现,强调在软件实现前必须进行分析和设计工作;
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求。
缺点
- 过分的依赖性,缺货灵活性。如果前期的需求模糊、不准确,后期会出现很多问题;
- 强调过程活动的线性顺序;
- 风险控制能力比较弱;
- 软件活动是以文档驱动的,如果阶段之间规定过多的文档或者发生需求的问题,系统的总工作量会大大增加;
- 如果管理人员仅仅用文档的完成情况进行项目完成进度的评估,可能会导致错误的结论。
增量模型
优点
- 增强用户对系统的信心;
- 降低系统失败风险;
- 提高系统可靠性;
- 提高系统的稳定性和可维护性。
缺点
- 增加了粒度,难以选择;
- 确定需所有的基本业务服务比较困难。
螺旋模型
优点
- 引入风险管理这一概念;
- 客户始终参与每一个阶段的开发,可以掌握项目的最新的信息,能够与管理层进行交互,同时有助于增进软件开发人员与用户对系统服务需求的理解,减少他们的误解;
- 设计上的灵活性,可以在项目的各个阶段进行变更;
- 系统由小到大,分段进行构建,成本计算变得简单容易;
- 更容易确认各项主要系统服务的可应用性、系统设计的可行性、系统作为产品的结果。
缺点
- 螺旋模型的应用有一定的限制条件,适用于投资规模较大的软件项目;
- 对于客户来说,系统的演化结果可能不可控;
- 建设周期较长。可能该软件开发完毕之后,因为软件技术发展较快,软件水平与该系统存在一定的差距,无法满足用户的需求;
- 失误(错误)的风险分析可能带来更大的风险。
简述统一过程三大特点,与面向对象的方法有什么关系?
同一过程的三大特点:
- 以架构为中心(Architecture Centric),综合考虑软件系统的各个方面并优先解决软件系统中的主要问题,同时创建常见问题的通用解决方案,解决软件项目的主要风险。
- 迭代式增量开发(Iterative and Evolutionary),分别针对阶段对于不同风险对象,风险作为驱动。
- 用例驱动(Use Case Driven),通过客户的角度来看待软件系统,围绕用户为核心,用例是用户和系统交互的具体情景,解决从需求中提取对象的困难,并明确明确软件系统业务需求与服务范围。
与面向对象的方法的关系:
统一过程基于构件,它采用新的可视化建模标准,即统一建模语言UML。统一过程中的用例驱动体现用户的驱动开发,迭代式增量开发体现了风险驱动开发,而用户驱动的开发。UP面向功能类编程,架构设计接口,符合面向对象方法的特征。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
同一过程四个阶段:
- 初始阶段(Inception)
- 大体上的构想、业务案例、范围和模糊评估。
- 细化阶段(Elaboration)
- 已经精化的构想、核心构架的迭代实现、高风险的解决、确定大多数需求和范围和更为实际的评估。
- 构建阶段(Construction)
- 对遗留下的风险较低和较为简单的元素进行迭代实现、准备部署。
- 交付阶段(Transition)
- 进行测试与部署。
在统一开发过程中的每个阶段,将该阶段的工作分为多次迭代过程以及每次迭代过程产生的增量。每个阶段都以一个里程碑作为结束标记。
其中的每一个阶段结束于一个主要的里程碑。每个阶段本质上是两个里程碑之间的时间跨度。在每一个阶段的结尾进行一次评估用以确定该阶段的目标是否达到。如果达到,评估结果让人满意则进行下一个阶段。一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。
四个阶段的里程碑:
- 初始阶段的里程碑
- 生命周期目标(Lifecycle Objective)里程碑
- 生命周期目标里程碑评价项目基本的生存能力
- 细化阶段的里程碑
- 生命周期体系结构(Lifecycle Architecture)里程碑
- 生命周期体系结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量
- 构建阶段的里程碑
- 初始运营能力里程碑
- 初始运营里程碑决定产品是否可以在测试环境中进行部署,确定软件、环境、用户是否可以开始系统运作
- 交付阶段的里程碑
- 产品发布里程碑
- 确定目标是否实现,以及是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下个周期的初始阶段重合。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
通过统一过程,企业能够遵循预先将开发的过程分为若干个阶段,确定里程碑与目标,并且能够按照迭代周期进行阶段性开发,从而使得软件项目能够按照正确的进度推进,并及时获得反馈。这为固定项目周期提供了一定的保证。企业能够按固定的节奏生产、固定的周期发布软件产品因为软件统一开发过程的每一个阶段结束于一个里程碑,初始阶段是上一个里程碑之后。也就是说里程碑之后才进行下一次的迭代。所以每次迭代都有固定的时间进行生产、固定的周期进行产品的发布。
好处:
- 软件项目开发更加规范化,便于项目的管理
- UP的风险驱动特性使得风险能够被有效控制。通过UP进行迭代式增量开发,首先解决高风险问题。
- 通过及时的客户反馈使得开发的软件能够被客户接受,以免客户的需求不能被很好满足。