免费智能真题库 > 历年试卷 > 系统架构设计师 > 2010年下半年 系统架构设计师 上午试卷 综合知识
  第28题      
  知识点:   风险分析   其他经典模型   评审   有效性
  关键词:   风险分析   评审   软件开发   有效性   风险   开发        章/节:   软件开发方法       

 
(28)把整个软件开发流程分成多个阶段,每一个阶段都由目标设定、风险分析、开发和有效性验证以及评审构成。
 
 
  A.  原型模型
 
  B.  瀑布模型
 
  C.  螺旋模型
 
  D.  V模型
 
 
 

 
  第25题    2012年下半年  
   35%
以下关于软件生存周期模型的叙述,正确的是(25)。
  第25题    2009年下半年  
   47%
(25) 方法以原型开发思想为基础,采用迭代增量式开发,发行版本小型化,比较适合需求变化较大或者开发前期对需求不是很清晰的项目..
  第29题    2014年下半年  
   32%
下列关于敏捷方法的叙述中,错误的是(29)。
   知识点讲解    
   · 风险分析    · 其他经典模型    · 评审    · 有效性
 
       风险分析
        在得到了项目风险列表后,需要对其中的风险做进一步的分析,以明确各风险的属性和要素,这样才可以更好地制定风险应对措施。风险分析可以分为定性分析和定量分析两种方式。风险定性分析是一种快捷有效的风险分析方法,一般经过定性分析的风险已经有足够的信息制定风险应对措施并进行跟踪与监控了。在定性风险分析的基础上,可以进行风险定量分析。定量分析的目的并不是获得数字化的结果,而是得当更精确的风险情况,以便进行决策。
               风险定性分析
               风险定性分析包括对已经识别的风险进行优先级排序,以便采取进一步措施。进行定性分析的依据是项目管理计划(风险管理计划、风险记录)、组织过程资产、工作绩效信息、项目范围说明、风险记录。在分析过程中,需要根据这些输入对已识别的风险进行逐项的评估,并更新风险列表。风险定性分析的工具和技术主要有风险概率及影响评估、概率及影响矩阵、风险数据质量评估、风险种类、风险紧急度评估。
               (1)风险可能性与影响分析。可能性评估需要根据风险管理计划中的定义,确定每一个风险的发生可能性,并记录下来。除了风险发生的可能性,还应当分析风险对项目的影响。风险影响分析应当全面,需要包括对时间、成本、范围等各方面的影响。其中不仅仅包括对项目的负面影响,还应当分析风险带来的机会,这有助于项目经理更精确地把握风险。对于同一个风险,由于不同的角色和参与者会有不同的看法,因此一般采用会议的方式进行风险可能性与影响的分析。因为风险分析需要一定的经验和技巧,也需要对风险所在的领域有一定的经验,因此,在分析时最好邀请相关领域的资深人士参加以提高分析结果的准确性。例如,对于技术类风险的分析就可以邀请技术专家参与评估。
               (2)确定风险优先级。在确定了风险的可能性和影响后,需要进一步确定风险的优先级。风险优先级的概念与风险可能性和影响既有联系又不完全相同。例如,发生地震可能会造成项目终止,这个风险的影响很严重,直接造成项目失败,但其发生的可能性非常小,因此优先级并不高。又如,坏天气可能造成项目组成员工作效率下降,虽然这种可能性很大,每周都会出现,但造成的影响非常小,几乎可以忽略不计,因此,优先级也不高。
               风险优先级是一个综合的指标,优先级的高低反映了风险对项目的综合影响,也就是说,高优先级的风险最可能对项目造成严重的影响。一种常用的方法是风险优先级矩阵,当分析出特定风险的可能性和影响后,根据其发生的可能性和影响在矩阵中找到特定的区域,就可以得到风险的优先级。
               (3)确定风险类型。在进行风险定性分析的时候需要确定风险的类型,这一过程比较简单。根据风险管理计划中定义的风险类型列表,可以为分析中的风险找到合适的类型。如果经过分析后,发现在现有的风险类型列表中没有合适的定义,则可以修订风险管理计划,加入这个新的风险类型。
               风险定量分析
               相对于定性分析来说,风险定量分析更难操作。由于在分析方法不恰当或缺少相应模型的情况下,风险的定量分析并不能带来更多有价值的信息,反而会在分析过程中占用一定的人力和物力。因此一般先进行风险的定性分析,在有了对风险相对清晰的认识后,再进行定量分析,分析风险对项目负面的和正面的影响,制定相应的策略。
               定量分析着重于整个系统的风险情况而不是单个风险。事实上,风险定量分析并不需要直接制定出风险应对措施,而是确定项目的预算、进度要求和风险情况,并将这些作为风险应对策略的选择依据。在风险跟踪的过程中,也需要根据最新的情况对风险定量分析的结果进行更新,以保证定量分析的精确性。
               风险定量分析的工具和方法主要有数据收集和表示技术(风险信息访谈、概率分布、专家判断)、定量风险分析和建模技术(灵敏度分析、期望货币价值分析、决策树分析、建模和仿真)。
               (1)决策树分析。决策树分析法通常用决策树图表进行分析,它描述了每种可能的选择和这种情况发生的概率。期望货币价值分析分析方法常用在决策树分析方法中,有关这方面的知识,请阅读18.2.3节。
               (2)灵敏度分析。灵敏度分析也称为敏感性分析,通常先从诸多不确定性因素中找出对模型结果具有重要影响的敏感性参数,然后从定量分析的角度研究其对结果的影响程度和敏感性程度,使对企业价值的评估结果的判断有更为深入的认识。托那多图(Tornado Diagram,龙卷风图)是灵敏度分析中非常有效的常用图示,它将各敏感参数按其敏感性进行排序,形象地反映出各敏感参数对价值评估结果的影响程度。运用托那多图进行灵敏度分析的具体步骤包括:选择参数、设定范围、敏感性测试、将各敏感参数对价值结果的影响按其敏感性大小进行排序。
               (3)蒙特卡罗模拟。蒙特卡罗(MonteCarlo)方法作为一种统计模拟方法,在各行业广泛运用。蒙特卡罗方法在定量分析中的运用较为复杂,牵涉复杂的数理概率模型。它将对一个多元函数的取值范围问题分解为对若干个主要参数的概率问题,然后用统计方法进行处理,得到该多元函数的综合概率,在此基础上分析该多元函数的取值范围可能性。蒙特卡罗方法的关键是找到一组随机数作为统计模拟之用,这一方法的精度取决于随机数的均匀性与独立性。就运用于风险分析而言,蒙特卡罗方法主要通过分析各种不确定因素,灵活地模拟真实情况下的某个系统中的各主要因素变化对风险结果的影响。由于计算过程极其繁复,蒙特卡罗方法不适合简单(单变量)模型,而对于复杂(有多种不确定性因素)模型则是一种很好的方法。其具体步骤包括选取变量、分析各变量的概率分布、选取各变量的样本、模拟价值结果、分析结果。
 
       其他经典模型
        本节简单介绍一些经典模型,包括演化模型、螺旋模型、喷泉模型、智能模型、增量模型、构件组装模型、迭代模型等。
        (1)演化模型:也称为变换模型,是在快速开发一个原型的基础上,根据用户在调用原型的过程中提出的反馈意见和建议,对原型进行改进,获得原型的新版本,重复这一过程,直到演化成最终的软件产品。
        (2)螺旋模型:将瀑布模型和变换模型相结合,综合了两者的优点,并增加了风险分析。它以原型为基础,沿着螺线自内向外旋转,每旋转一圈都要经过制订计划、风险分析、实施工程及客户评价等活动,并开发原型的一个新版本。经过若干次螺旋上升的过程,得到最终的系统。
        (3)喷泉模型:为软件复用和生存周期中多项开发活动的集成提供了支持,主要支持面向对象的开发方法。“喷泉”一词本身体现了迭代和无间隙特性。系统某个部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。所谓无间隙是指在开发活动中,分析、设计和编码之间不存在明显的边界。
        (4)智能模型:是基于知识的软件开发模型,它综合了上述若干模型,并与专家系统结合在一起。该模型应用基于规则的系统,采用归约和推理机制,帮助软件人员完成开发工作,并使维护在系统规格说明一级进行。
        (5)增量模型:融合了瀑布模型的基本成分(重复的应用)和原型实现的迭代特征。增量模型采用随着时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的增量。当使用增量模型时,第一个增量往往是核心的产品,也就是说第一个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估,都作为下一个增量发布的新特征和功能。这个过程在每一个增量发布后不断重复,直到产生最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。增量模型像原型实现模型和其他演化方法一样,本质上是迭代的。
        但与原型实现不同的是,增量模型强调每一个增量均发布一个可操作产品。增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。虽然某个增量包可能还需要进一步适应客户的需求,而且还需要更改,但只要这个增量包足够小,其影响对整个项目来说是可以承受的。采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源,如果核心产品很受欢迎,则可以增加人力实现下一个增量;当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到“镇静剂”的作用。此外,增量能够有计划地管理技术风险。增量模型的缺点是如果增量包之间存在相交的情况且不能很好地处理,就必须做全盘的系统分析。增量模型采用的将功能细化、分别开发的方法适用于需求经常改变的软件开发过程。
        (6)迭代模型:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。在迭代模型中,每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。迭代模型适用于项目事先不能完整定义产品所有需求、计划多期开发的软件开发。在现代的开发方法中,例如XP、RUP等,无一例外地都推荐、主张采用能显著减少风险的迭代模型。迭代模型适用于项目事先不能完整定义产品所有需求、计划多期开发的软件开发中。
        (7)构件组装模型:基于构件的软件开发(Component Based Software Development,CBSD)模型是利用模块化方法,将整个系统模块化,并在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。CBSD模型融合了螺旋模型的许多特征,本质上是演化型的,开发过程是迭代的。
        CBSD方法由软件的需求分析和定义、架构设计、构件库的建立、应用软件构建、测试和发布5个阶段组成。CBSD方法使得软件开发不再一切从头开始,开发的过程就是构件组装的过程,维护的过程就是构件升级、替换和扩充的过程,其优点是提高了软件开发的效率;构件可由一方定义其规格说明,被另一方实现,然后供给第三方使用,CBSD允许多个项目同时开发,降低了费用,提高了可维护性,可实现分步提交软件产品。该方法的缺点是:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,引入具有较大的风险;可重用性和软件高效性不易协调,需要精干的、有经验的分析人员和开发人员,一般的开发人员插不上手,客户的满意度低;过分依赖于构件,构件库的质量影响着产品质量。
 
       评审
        对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方法的可行性,关键的处理及内外部接口定义的正确性、有效性、各部分之间的一致性等都一一进行评审。
 
       有效性
        有效性是指软件产品在指定的使用环境下,使用户获得满足准确度和完整性要求的规定目标的能力。
   题号导航      2010年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第28题    在手机中做本题