免费智能真题库 > 历年试卷 > 程序员 > 2011年下半年 程序员 上午试卷 综合知识
  第54题      
  知识点:   CMM   CMMI   敏捷开发   能力成熟度模型
  关键词:   CMMI   敏捷开发   能力成熟度模型   软件产品   需求   CMM   开发        章/节:   软件工程和项目管理基础知识       

 
软件企业开发软件产品需要注重三大要素:质量、交付时间和成本。近年来,软件企业实施的CMMI (能力成熟度模型集成)以及Agile (敏捷开发)和Lean (精益开发) 方法都是解决这些问题的措施。由于客户的需求往往不同,面对质量优先、交付时间优先和成本优先的不同需求,开发者宜分别采用(54)。
 
 
  A.  CMMI, Agile、Lean
 
  B.  Lean、CMMI、Agile
 
  C.  Lean、Agile、CMMI
 
  D.  Agile、CMMI、Lean
 
 
 

 
  第49题    2015年下半年  
   34%
软件工程的基本目标是(49)。
  第52题    2018年下半年  
   19%
以用户为中心的软件设计原则不包括( )。
  第49题    2020年下半年  
   39%
以下有关软件工程的叙述中,正确的是( )。
   知识点讲解    
   · CMM    · CMMI    · 敏捷开发    · 能力成熟度模型
 
       CMM
        CMM模型描述和分析了软件过程能力的发展程度,确立了一个软件过程成熟程度的分级标准。
        (1)初始级:软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和无步骤可循的状态,软件产品所取得的成功往往依赖于极个别人的努力和机遇。初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行时没有政策、资源等方面的保证,那么它仍然被视为初始级。
        (2)可重复级:已经建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。焦点集中在软件管理过程上。一个可管理的过程则是一个可重复的过程,一个可重复的过程则能逐渐演化和成熟。从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。
        (3)已定义级:用于管理方面和工程方面的软件过程均已文档化、标准化,并形成整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。它要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程,剪裁出项目适宜的过程,并执行这些过程。过程的剪裁不是随意的,在使用前需经过企业有关人员的批准。
        (4)已管理级:软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。已管理级的管理是量化的管理。所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的产品)需有明确的度量指标。这些度量应是详尽的,且可用于理解和控制软件过程和产品,量化控制将使软件开发真正变成为一个工业生产活动。
        (5)优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。如果一个企业达到了这一级,表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。
        在CMM中,每个成熟度等级(第一级除外)规定了不同的关键过程域(Key Process Area,KPA),一个软件组织如果希望达到某一个成熟度级别,就必须完全满足关键过程域所规定的要求,即满足关键过程域的目标。每个级别对应的关键过程域见下表。
        
        关键过程域的分类
 
       CMMI
        与CMM相比,CMMI涉及面更广,专业领域覆盖软件工程、系统工程、集成产品开发和系统采购。据美国国防部资料显示,运用CMMI模型管理的项目,不仅降低了项目的成本,而且提高了项目的质量与按期完成率。
        CMMI可以看做把各种CMM集成到一个系列的模型中了,CMMI的基础源模型包括软件CMM 2.0版(草稿C)、EIA-731系统工程,以及集成化产品和过程开发IPD CMM(IPD)0.98a版等。CMMI也描述了5个不同的成熟度级别。
               CMMI的表示方法
               每一种CMMI模型都有两种表示法,即阶段式和连续式。这是因为在CMMI的三个源模型中,CMM是“阶段式”模型,系统工程能力模型是“连续式”模型,而集成产品开发(IPD)CMM是一个混合模型,组合了阶段式和连续式两者的特点。两种表示法在以前的使用中各有优势,都有很多支持者,因此,CMMI产品开发群组在集成这三种模型时,为了避免由于淘汰其中任何一种表示法而失去用户对CMMI的支持,并没有选择单一的结构表示法,而是为每一个CMMI都推出了两种不同表示法的版本。
               不同表示法的模型具有不同的结构。连续式表示法强调的是单个过程域的能力,从过程域的角度考查基线和度量结果的改善,其关键术语是“能力”;而阶段式表示法强调的是组织的成熟度,从过程域集合的角度考查整个组织的过程成熟度阶段,其关键术语是“成熟度”。
               尽管两种表示法的模型在结构上有所不同,但CMMI产品开发群组仍然尽最大努力确保了两者在逻辑上的一致性,两者的需要构件和期望部件基本上都是一样的。过程域、目标在两种表示法中都一样,特定实践和共性实践在两种表示法中也不存在根本区别。因此,模型的两种表示法并不存在本质上的不同。组织在进行集成化过程改进时,可以从实用角度出发选择某一种偏爱的表示法,而不必从哲学角度考虑两种表示法之间的差异。
               CMMI的级别
               阶段式模型也把组织分为以下5个不同的级别。
               (1)初始级。代表了以不可预测结果为特征的过程成熟度,过程处于无序状态,成功主要取决于团队的技能。
               (2)已管理级。代表了以可重复项目执行为特征的过程成熟度。组织使用基本纪律进行需求管理、项目计划、项目监督和控制、供应商协议管理、产品和过程质量保证、配置管理,以及度量和分析。对于级别2而言,主要的过程焦点在于项目级的活动和实践。
               (3)严格定义级。代表了以组织内改进项目执行为特征的过程成熟度。强调级别3的关键过程域的前后一致的、项目级的纪律,以建立组织级的活动和实践。
               (4)定量管理级。代表了以改进组织性能为特征的过程成熟度。4级项目的历史结果可用来交替使用,在业务表现的竞争尺度(成本、质量、时间)方面的结果是可预测的。
               (5)优化级。代表了以可快速进行重新配置的组织性能和定量的、持续的过程改进为特征的过程成熟度。
               CMMI的目标
               CMMI的具体目标是:
               (1)改进组织的过程,提高对产品开发和维护的管理能力。
               (2)给出能支持将来集成其他科目CMM的公共框架。
               (3)确保所开发的全部有关产品符合将要发布的关于软件过程改进的国际标准ISO/IEC 15504对软件过程评估的要求。
               CMMI的优点
               使用在CMMI框架内开发的模型具有下列优点。
               (1)过程改进能扩展到整个企业级。
               (2)先前各模型之间的不一致和矛盾将得到解决。
               (3)既有分级的模型表示,也有连续的模型表示,可任意选用。
               (4)原先单科目过程改进的工作可与其他科目的过程改进工作结合起来。
               (5)基于CMMI的评估将与组织原先评估得分相协调,从而保护当前的投资,并与ISO/IEC 15504评估结果相一致。
               (6)节省费用,特别是当要运用多科目改进时,以及进行相关的培训和评估时。
               (7)鼓励组织内各科目之间进行沟通和交流。
 
       敏捷开发
        敏捷软件开发简称敏捷开发,是从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面沟通、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重人的作用。
        敏捷开发的发展过程中出现了多个不同的流派,例如极限编程(Extreme Programming,XP)、自适应软件开发、水晶方法、特性驱动开发等。但其中的基本原则是一致的。从开发者的角度,主要的关注点有短平快会议(Stand Up)、小版本发布(Frequent Release)、较少的文档(Minimal Documentation)、合作为重(Collaborative Focus)、客户直接参与(Customer Engagement)、自动化测试(Automated Testing)、适应性计划调整(Adaptive Planning)和结对编程(Pair Programming);从管理者的角度,主要的关注点有测试驱动开发(Test-Driven Development)、持续集成(Continuous Integration)和重构(Refactoring)。
        XP是一种轻量(敏捷)、高效、低风险、柔性、可预测、科学且充满乐趣的软件开发方式,适用于小型或中型软件开发团队,并且客户的需求模糊或需求多变。与其他方法相比,其最大的不同如下:
        (1)在更短的周期内,更早地提供具体、持续的反馈信息。
        (2)迭代地进行计划编制,首先在最开始迅速生成一个总体计划,然后在整个项目开发过程中不断地发展它。
        (3)依赖于自动测试程序来监控开发进度,并及早地捕获缺陷。
        (4)依赖于口头交流、测试和源程序进行沟通。
        (5)倡导持续的演化式的设计。
        (6)依赖于开发团队内部的紧密协作。
        (7)尽可能达到程序员短期利益和项目长期利益的平衡。
        XP由价值观、原则、实践和行为4个部分组成,它们彼此相互依赖、关联,并通过行为贯穿于整个生命周期。XP的核心是其总结的4大价值观,即沟通、简单、反馈和勇气。它们是XP的基础,也是XP的灵魂。XP的5个原则是快速反馈、简单性假设、逐步修改、提倡更改和优质工作。而在XP方法中,贯彻的是“小步快走”的开发原则,因此工作质量决不可打折扣,通常采用测试先行的编码方式来提供支持。
        在XP中集成了12个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户和编码标准。
        敏捷方法主要适用于小规模软件的开发和小型团队的开发。这些方法所提出来的一些所谓的“最佳实践”并非对每个项目都是最佳的,需要项目团队根据实际情况决定。而且,敏捷方法的有些原则在应用中不一定能得到贯彻和执行。因此,在实际工作中,可以“取其精华,去其糟粕”,把敏捷方法和其他方法结合起来。
 
       能力成熟度模型
        能力成熟度模型(简称CMM)是对一个组织机构的能力进行成熟度评估的模型。成熟度级别一般分成五级:1级-非正式执行、2级-计划跟踪、3级-充分定义、4级-量化控制、5级-持续优化。其中,级别越大,表示能力成熟度越高,各级别定义如下:
        . 1级-非正式执行:具备随机、无序、被动的过程;
        . 2级-计划跟踪:具备主动、非体系化的过程;
        . 3级-充分定义:具备正式的、规范的过程;
        . 4级-量化控制:具备可量化的过程;
        . 5级-持续优化:具备可持续优化的过程。
        目前,网络安全方面的成熟度模型主要有SSE-CMM、数据安全能力成熟度模型、软件安全能力成熟度模型等。
               SSE-CMM
               SSE-CMM(Systems Security Engineering Capability Maturity Model)是系统安全工程能力成熟度模型。SSE-CMM包括工程过程类(Engineering)、组织过程类(Organization)、项目过程类(Project)。各过程类包括的过程内容如下表所示。
               
               SSE-CMM系统安全工程能力成熟度模型过程清单
               SSE-CMM的工程过程、风险过程、保证过程的相互关系如下图所示。
               
               SSE-CMM的工程过程、风险过程、保证过程关联图
               SSE-CMM的工程过程关系如下图所示。
               
               SSE-CMM的工程过程关联图
               SSE-CMM的工程质量来自保证过程,如下图所示。
               
               SSE-CMM的保证过程图
               数据安全能力成熟度模型
               根据《信息安全技术数据安全能力成熟度模型》,数据安全能力成熟度模型架构如下图所示。
               
               数据安全能力成熟度模型架构
               数据安全能力从组织建设、制度流程、技术工具及人员能力四个维度评估:
               .组织建设——数据安全组织机构的架构建立、职责分配和沟通协作;
               .制度流程——组织机构关键数据安全领域的制度规范和流程落地建设;
               .技术工具——通过技术手段和产品工具固化安全要求或自动化实现安全工作;
               .人员能力——执行数据安全工作的人员的意识及专业能力。
               详细情况参考标准。
               软件安全能力成熟度模型
               软件安全能力成熟度模型分成五级,各级别的主要过程如下:
               . CMM1级——补丁修补;
               . CMM2级——渗透测试、安全代码评审;
               . CMM3级——漏洞评估、代码分析、安全编码标准;
               . CMM4级——软件安全风险识别、SDLC实施不同安全检查点;
               . CMM5级——改进软件安全风险覆盖率、评估安全差距。
   题号导航      2011年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第54题    在手机中做本题