1.
CMU 与美国国防部合作提出 CMM/CMMI 模型,解决了美国国防部估软件供应商能力的要求;
CMM/CMMI主要应用在两大方面:能力评估和过程改进。
2.
瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
增量模型的优点:(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;(3)可先发布部分功能给客户,对客户起到镇静剂的作用。
增量模型的缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
螺旋模型的优点:(1)设计上的灵活性,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。
3.
RUP的三大特点:(1)软件开发是一个迭代过程; (2)软件开发是由Use Case驱动的; (3)软件开发是以架构设计为中心的。
特点1体现风险驱动的开发,特点2和特点3体现用户驱动的开发。
4.
RUP中的软件生命周期在时间上被分解为四个顺序的阶段(如图3-2所示),
分别为先启阶段(Inception)、精化阶段(Elaboration)、构建阶段(Construction)和产品化阶段(Transition)。
每个阶段结束于一个主要的里程碑(Major Milestones);每个阶段本质上是两个里程碑之间的时间跨度。
在每个阶段的结尾执行一次评审以确定这个阶段的目标是否已经满足。如果评审结果令人满意的话,可以允许项目进入下一个阶段。
5.
质量最容易妥协。因为即使用起来并不太好,或者有些小bug,也不会有太大影响。
6.
因为需求分析,设计,实现,迭代,测试和交付的生命周期是有固定长度的, 是在时间盒(time-boxing)里面限制的,例如起始的固定周期就是限制在 three weeks,之后的迭代开发构成也是有较为明确的时间限制的。
7.
迭代式开发(IBM)
遇到问题:发布周期短,市场需求不断变化,新技术,风险大。
解决方案:采用迭代开发敏捷成功实践,迭代周期为4周,主要包括,迭代计划,迭代架构工作,功能增量的开发工作,每周构建,迭代复审。
收益:在3年内提高团队绩效15%
8.
6个月。