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

 
应用系统开发中可以采用不同的开发模型,其中,(39)将整个开发流程分为目标设定、风险分析、开发和有效性验证、评审四个部分;(40)则通过重用来提高软件的可靠性和易维护性,程序在进行修改时产生较少的副作用。
 
 
  A.  瀑布模型
 
  B.  螺旋模型
 
  C.  构件模型
 
  D.  对象模型
 
 
 

 
  第23题    2021年下半年  
   39%
RUP(Rational Unified Process)软件开发生命周期是一个二维的软件开发模型,其中,RUP的9个核心工作流中不包括( )。
  第35题    2015年下半年  
   46%
RUP强调采用(34)的方式来开发软件,这样做的好处是(35)。
  第33题    2013年下半年  
   41%
基于RUP的软件过程是一个迭代过程。一个开发周期包括初始、细化、构建和移交四个阶段,每次通过这四个阶段就会产生一代软件,其中..
   知识点讲解    
   · 风险分析    · 其他经典模型    · 开发模型    · 可靠性    · 评审    · 维护    · 维护性    · 有效性
 
       风险分析
        在得到了项目风险列表后,需要对其中的风险做进一步的分析,以明确各风险的属性和要素,这样才可以更好地制定风险应对措施。风险分析可以分为定性分析和定量分析两种方式。风险定性分析是一种快捷有效的风险分析方法,一般经过定性分析的风险已经有足够的信息制定风险应对措施并进行跟踪与监控了。在定性风险分析的基础上,可以进行风险定量分析。定量分析的目的并不是获得数字化的结果,而是得当更精确的风险情况,以便进行决策。
               风险定性分析
               风险定性分析包括对已经识别的风险进行优先级排序,以便采取进一步措施。进行定性分析的依据是项目管理计划(风险管理计划、风险记录)、组织过程资产、工作绩效信息、项目范围说明、风险记录。在分析过程中,需要根据这些输入对已识别的风险进行逐项的评估,并更新风险列表。风险定性分析的工具和技术主要有风险概率及影响评估、概率及影响矩阵、风险数据质量评估、风险种类、风险紧急度评估。
               (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允许多个项目同时开发,降低了费用,提高了可维护性,可实现分步提交软件产品。该方法的缺点是:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,引入具有较大的风险;可重用性和软件高效性不易协调,需要精干的、有经验的分析人员和开发人员,一般的开发人员插不上手,客户的满意度低;过分依赖于构件,构件库的质量影响着产品质量。
 
       开发模型
        电子商务应用系统开发模型是描述系统开发过程中各种活动如何执行的模型。系统生命周期模型确立了开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。常见的生命周期模型有如下5个模型。
               瀑布模型(Waterfall Model)
               瀑布模型是将软件生命周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。
               瀑布模型为软件的开发和维护提供了一种有效的管理模式,根据这一模式制定开发计划,进行成本预算,组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,所以它是以文档作为驱动、适合于软件需求很明确的软件项目的模型。
               但是,瀑布模型在大量的软件开发实践中也逐渐暴露出它的严重缺点。它是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。
               快速原型模型(Rapid Prototype Model)
               快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么。
               第二步则在第一步的基础上开发客户满意的软件产品。显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。
               快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。
               增量模型(Incremental Model)
               增量模型又称演化模型。大量的软件开发实践表明,许多开发项目在开始时对软件需求的认识是模糊的,因此很难一次开发成功。为了减少因对软件需求的了解不够确切而给开发工作带来的风险,可以在获取了一组基本的需求后,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。在使用增量模型时,第一个增量往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个增量的开发计划,它包括对核心产品的修改和一些新功能的发布。这个过程在每个增量发布后不断重复,直到产生最终的完善产品。增量模型特别适用于对软件需求缺乏准确认识的情况。
               螺旋模型(Spiral Model)
               对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。
               螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合。在每个螺旋周期分为如下四个工作步骤。
               ①制订计划。确定软件的目标,选定实施方案,明确项目开发的限制条件。
               ②风险分析。分析所选的方案,识别风险,消除风险。
               ③实施工程。实施软件开发,验证阶段性产品。
               ④用户评估。评价开发工作,提出修正建议,建立下一个周期的开发计划。
               喷泉模型(Water Fountain Model)
               喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。迭代意味着模型中的开发活动常常需要重复多次,在迭代过程中不断地完善软件系统。无间隙是指在开发活动(如分析、设计、编码)之间不存在明显的边界,也就是说,它不像瀑布模型那样,需求分析活动结束后才开始设计活动,设计活动结束后才开始编码活动,而是允许各开发活动交叉、迭代地进行。
 
       可靠性
        (1)完备性。完备性评价指标及测量,如下表所示。
        
        完备性评价指标及测量
        (2)连续性。连续性评价指标及测量,如下表所示。
        
        连续性评价指标及测量
        
        (3)稳定性。稳定性评价指标及测量,如下表所示。
        
        稳定性评价指标及测量
        (4)有效性。有效性评价指标及测量,如下表所示。
        
        有效性评价指标及测量
        (5)可追溯性。可追溯性评价指标及测量,如下表所示。
        
        可追溯性评价指标及测量
        
 
       评审
        对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方法的可行性,关键的处理及内外部接口定义的正确性、有效性、各部分之间的一致性等都一一进行评审。
 
       维护
        维护阶段是软件生存期中时间最长的阶段。软件一旦交付正式投入运行后便进入软件维护阶段。该阶段的关键任务是通过各种必要的维护活动使系统持久地满足用户的需要。每一项维护活动都应该准确地记录下来,作为正式的文档资料加以保存。
 
       维护性
        维护性是指软件产品可被修改的能力。修改可能包括修正、改进或软件适应环境、需求和功能规格说明中的变化。
               易分析性
               易分析性是指软件产品诊断软件中的缺陷或失效原因,以及判定待修改的部分的能力。
               易改变性
               易改变性是指软件产品使指定的修改可以被实现的能力。
               稳定性
               稳定性是指软件产品避免由于软件修改而造成意外结果的能力。
               易测试性
               易测试性是指软件产品使已修改软件能被确认的能力。
               维护性依从性
               维护性依从性是指软件产品依附于同维护性相关的标准或约定的能力。
 
       有效性
        有效性是指软件产品在指定的使用环境下,使用户获得满足准确度和完整性要求的规定目标的能力。
   题号导航      2020年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第39题    在手机中做本题