免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2021年上半年 数据库系统工程师 上午试卷 综合知识
  第27题      
  知识点:   风险分析   软件生存周期模型
  章/节:   软件工程基础知识       

 
( )强调风险分析,比较适用于庞大、复杂且高风险的系统。
 
 
  A.  瀑布模型
 
  B.  螺旋模型
 
  C.  V模型
 
  D.  原型化模型
 
 
 

 
  第27题    2015年上半年  
   53%
某公司计划开发一个产品,技术含量很高,与客户相关的风险也很多,则最适于采用( )开发过程模型。
  第25题    2020年下半年  
   53%
传统过程模型中,( )首先引入了风险管理。
  第16题    2015年上半年  
   58%
在( )设计阶段选择适当的解决方案,将系统分解为若干个子系统,建立整个系统的体系结构。
   知识点讲解    
   · 风险分析    · 软件生存周期模型
 
       风险分析
        当在软件工程环境中考虑风险时,主要是基于关心未来、关心变化、关心选择这三个概念提出的。在进行软件工程分析时,项目管理人员要进行4种风险评估活动,包括建立表示风险概念的尺度,描述风险引起的后果,估计风险影响的大小,确定风险估计的正确性。
        风险分析实际上是4个不同的活动:风险识别,风险预测,风险评估和风险控制。
               风险识别
               风险识别是试图系统化地确定对项目计划(估算、进度、资源分配)的威胁。风险识别的一种方法是建立风险条目检查表。该检查表可以用于识别风险,并使得人们集中来识别下列常见的已知的及可预测的风险:
               (1)产品规模。与要建造或要修改的软件的总体规模相关的风险。
               (2)商业影响。与管理或市场所加诸的约束相关的风险。
               (3)客户特性。与客户的素质以及开发者和客户定期通信的能力相关的风险。
               (4)过程定义。与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险。
               (5)开发环境。与用以构建产品的工具的可用性及质量相关的风险。
               (6)构建的技术。与待开发软件的复杂性及系统所包含技术的“新奇性”相关的风险。
               (7)人员数目及经验。与参与工作的软件工程师的总体技术水平及项目经验相关的风险。
               风险预测
               风险预测,又称风险估算,它从两个方面评估一个风险:风险发生的可能性或概率,以及如果风险发生了,所产生的后果。通常,项目计划人员与管理人员、技术人员一起进行如下所述的4种风险预测活动:
               (1)建立一个尺度或标准,以反映风险发生的可能性。
               (2)描述风险的后果。
               (3)估计风险对项目和产品的影响。
               (4)标注风险预测的整体精确度,以免产生误解。
               风险评估
               一种对风险评估很有用的技术就是定义风险参照水准。对于大多数软件项目来说,成本、进度和性能就是三种典型的风险参照水准。也就是说,对于成本超支、进度延期、性能降低(或它们的某种组合),有一个表明导致项目终止的水准。
               在进行风险评估时,需要建立(rilixi)形式的三元组。其中,ri表示风险,li表示风险发生的概率,xi则表示风险产生的影响。在风险评估过程中,需要执行以下4个步骤:
               (1)定义项目的风险参考水平值。
               (2)建立每一组(rilixi)与每一个参考水平值之间的关系。
               (3)预测一组临界点以定义项目终止区域,该区域由一条曲线或不确定区域所界定。
               (4)预测什么样的风险组合会影响参考水平值。
               风险控制
               这一步的所有风险分析活动只有一个目的——辅助项目组建立处理风险的策略。一个有效的策略必须考虑风险避免、风险监控、风险管理及意外事件计划方面的问题。
               如果软件项目组对于风险采用主动的方法,则避免永远是最好的策略。这可以通过建立一个风险缓解计划来达到。
               风险管理策略可以包含在软件项目计划中,或者风险管理步骤也可以组织成一个独立的风险缓解、监控和管理计划(RMMM计划)。RMMM计划将所有风险分析工作文档化,并由项目管理者作为整个项目计划中的一部分来使用。
 
       软件生存周期模型
        软件生存周期模型是一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止(IEEE标准12207.0—1996)。把这个概念应用到开发过程,可以发现所有生存周期模型的内在基本特征:描述了开发的主要阶段;定义了每一个阶段要完成的主要过程和活动;规范了每一个阶段的输入和输出(提交物);提供了一个框架,可以把必要的活动映射到该框架中。
        常见的软件生存周期模型有瀑布模型、演化模型、螺旋模型和喷泉模型等。
               瀑布模型(Waterfall Model)
               瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括需求分析、设计、编码、测试、运行和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落,如下图所示。
               
               瀑布模型为软件的开发和维护提供了一种有效的管理模式,根据这一模式制订开发计划,进行成本预算,组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,所以它是以文档作为驱动、适合于软件需求很明确的软件项目的模型。
               瀑布模型假设,一个待开发的系统需求是完整的、简明的、一致的,而且可以先于设计和实现完成之前产生。瀑布模型的优点是,容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。不足之处是,客户必须能够完整、正确和清晰地表达他们的需要;在开始的两个或三个阶段中,很难评估真正的进度状态;当接近项目结束时,出现了大量的集成和测试工作;直到项目结束之前,都不能演示系统的能力。在瀑布模型中,需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。
               增量模型(Incremental Model)
               增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分段为一系列增量产品,每一增量可以分别地开发。该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”,如下图所示。当使用增量模型时,第1个增量往往是核心的产品。客户对每个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。
               
               增量模型
               增量模型作为瀑布模型的一个变体,具有瀑布模型的所有优点,此外,它还有以下优点:第一个可交付版本所需要的成本和时间很少;开发由增量表示的小系统所承担的风险不大;由于很快发布了第一个版本,因此可以减少用户需求的变更;运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。
               增量模型的不足之处:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性,可能会超出组织的能力。
               演化模型(Evolutionary Model)
               演化模型主要针对事先不能完整定义需求的软件开发,是在快速开发一个原型的基础上,根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。
               演化模型的主要优点是,任何功能一经开发就能进入测试,以便验证是否符合产品需求,可以帮助引导出高质量的产品要求。其主要缺点是,如果不加控制地让用户接触开发中尚未稳定的功能,可能对开发人员及用户都会产生负面影响。
               螺旋模型(Spiral Model)
               对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。
               螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,如下图所示。在每个螺旋周期分为如下4个工作步骤:
               
               螺旋模型
               (1)制订计划。确定软件的目标,选定实施方案,明确项目开发的限制条件。
               (2)风险分析。分析所选的方案,识别风险,消除风险。
               (3)实施工程。实施软件开发,验证阶段性产品。
               (4)用户评估。评价开发工作,提出修正建议,建立下一个周期的开发计划。
               螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应。因此特别适用于庞大、复杂并且具有高风险的系统。
               与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。在使用螺旋模型进行软件开发时,需要开发人员具有相当丰富的风险评估经验和专门知识。另外,过多的迭代次数会增加开发成本,延迟提交时间。
               喷泉模型(Fountain Model)
               喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。迭代意味着模型中的开发活动常常需要重复多次,在迭代过程中不断地完善软件系统。无间隙是指在开发活动(如分析、设计、编码)之间不存在明显的边界,也就是说,它不像瀑布模型那样,需求分析活动结束后才开始设计活动,设计活动结束后才开始编码活动,而是允许各开发活动交叉、迭代地进行。
               喷泉模型如下图所示,该模型的各个阶段没有明显的界限,开发人员可以同步进行。其优点是可以提高软件项目开发效率,节省开发时间。由于喷泉模型在各个开发阶段是重叠的,在开发过程中需要大量的开发人员,不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大。
               
               喷泉模型
   题号导航      2021年上半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第27题    在手机中做本题