免费智能真题库 > 历年试卷 > 软件设计师 > 2022年上半年 软件设计师 上午试卷 综合知识
  第29题      
  知识点:   软件过程模型   排序   排序算法   稳定性
  关键词:   风险分析   螺旋模型   风险        章/节:   软件工程基础知识       

 
螺旋模型综合了(29)的优点,并引入了风险分析。
 
 
  A.  瀑布模型和演化模型
 
  B.  瀑布模型和原型化模型
 
  C.  原型化模型和演化模型
 
  D.  原型化模型和增量模型
 
 
 

  相关试题:软件工程基础知识          更多>  
 
  第33题    2015年上半年  
   41%
正式技术评审的目标是(33)。
  第19题    2012年上半年  
   52%
若软件项目组对风险采用主动的控制方法,则(19)是最好的风险控制策略。
  第24题    2021年上半年  
   25%
以下关于文档的叙述中,不正确的是( )。
   知识点讲解    
   · 软件过程模型    · 排序    · 排序算法    · 稳定性
 
       软件过程模型
               软件过程模型习惯上也称为软件开发模型,它是软件开发全部过程、活动和任务的结构框架。典型的软件过程模型有瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式化方法模型等。
               瀑布模型
               该模型给出了软件生存周期各阶段的固定顺序,上一阶段完成后才能进入到下一阶段,整个过程就像流水下泻,故称为瀑布模型。瀑布模型为软件的开发和维护提供一种有效的管理模式,对保证软件产品的质量有重要的作用。但是这种模型缺乏灵活性,无法通过开发活动来澄清本来不够明确的需求,这将可能导致直到软件开发完成时才发现所开发的软件并非都是用户所需要的,此时必须付出高额的代价才能纠正这一偏差。
               增量模型
               增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分段为一系列增量产品,每一增量可以分别开发。该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的"增量"。当使用增量模型时,第1个增量往往是核心的产品。客户对每个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。
               演化模型
               在获取一组基本的需求后,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。该模型是用于对软件需求缺乏准确认识的情况。
               (1)原型模型。原型是预期系统的一个可执行版本,反映了系统性质的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建原型。当然,能够采用原型方法是因为开发工具的快速发展,使得能够迅速地开发出一个让用户看得见、摸得着的系统框架。这样,对于计算机不是很熟的用户就可以根据这个框架提出自己的需求。开发原型系统首先确定用户需求,开发初始原型,然后征求用户对初始原型的改进意见,并根据意见修改原型。
               (2)螺旋模型。将瀑布模型和演化模型相结合就成了螺旋模型。这种模型综合了瀑布模型和演化模型的优点,并增加了风险分析。螺旋模型包括四个方面的活动:制订计划、风险分析、实施工程、客户评估。
               喷泉模型
               喷泉模型主要用于描述面向对象的开发过程。该模型具有迭代和无间隙特性。迭代意味着模型中的开发活动常常需要重复多次,在迭代中不断完善软件系统。无间隙是指在开发活动之间不存在明显的边界,允许开发活动交叉、迭代地进行。
               基于构件的模型
               基于构件的开发是指利用预先包装的构件来构造应用系统。构件可以是组织内部开发的构件,也可以是商品化成品(Commercial Off-The-Shelf,COTS)软件构件。基于构件的开发模型具有许多螺旋模型的特点,它本质上是演化模型,需要以迭代方式构建软件。其不同之处在于,基于构件的开发模型采用预先打包的软件构件开发应用系统。
               形式化方法模型
               形式化方法是建立在严格数学基础上的一种软件开发方法,其主要活动是生成计算机软件形式化的数学规格说明。
               形式化方法用严格的数学语言和语义描述功能规约和设计规约,通过数学的分析和推导,易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、设计模型和程序进行验证。通过数学的演算,使得从形式化功能规约到形式化设计规约,以及从形式化设计规约到程序代码的转换成为可能。这种方法的一个变形是净室软件工程。
               统一过程(UP)模型
               统一过程(UP)模型是一种"用例和风险驱动,以架构为中心,迭代并且增量"的开发过程,由UML方法和工具支持。迭代的意思是将整个软件开发项目划分为许多个小的"袖珍项目",每个"袖珍项目"都包含正常软件项目的所有元素,如计划、分析和设计、构造、集成和测试以及内部和外部发布。
               统一过程包括5个阶段,即初始阶段、精化阶段、构建阶段、移交阶段、产生阶段。前4个技术阶段由主要里程碑所终止。
               (1)初始阶段——生命周期目标。
               (2)精化阶段——生命周期架构。
               (3)构建阶段——初始运作功能。
               (4)移交阶段——产品发布。
               统一过程的典型代表是RUP(Rational Unified Process)。RUP是UP的商业扩展,完全兼容UP,但比UP更完整、更详细。
               敏捷方法
               敏捷开发的总体目标是通过"尽可能早地、持续地对有价值的软件的交付"使客户满意。
               (1)极限编程(XP)。XP是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践和行为4个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期。
               4个价值观,包括沟通、简单性、反馈和勇气。
               5个原则,包括快速反馈、简单性假设、逐步修改、提倡更改和优质工作。
               12个最佳实践,包括计划游戏(快速制订计划、随着细节的不断变化而完善)、小型发布(系统的设计要能够尽可能早地交付)、隐喻(找到合适的比喻传达信息)、简单设计(只处理当前的需求,使设计保持简单)、测试先行(先写测试代码,然后再编写程序)、重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、结队编程、集体代码所有制、持续集成(可以按日甚至按小时为客户提供可运行的版本)、每周工作40h、现场客户和编码标准。
               (2)水晶法。
               (3)并列争球法。
               (4)自适应软件开发。
 
       排序
        假设含n个记录的文件内容为{R1R2,…,Rn},其相应的关键字为{k1k2,…,kn}。经过排序确定一种排列{Rj1Rj2,…,Rjn},使得它们的关键字满足如下递增(或递减)关系:kj1≤kj2≤…≤kjn(或kj1kj2≥…≥kjn)。
 
       排序算法
               简单排序
               简单排序包括直接插入排序、冒泡排序、简单选择排序等方法。
               1)直接插入排序
               直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
               2)冒泡排序
               首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即 r[1].key>r[2].key),则交换两个记录,接着比较第二个记录和第三个记录的关键字。依次类推,直至第n-1个记录和第n个记录的关键字进行过比较为止。这个过程称为第一趟冒泡排序,使得关键字最大的记录被安置到最后一个记录的位置上。然后进行第二趟冒泡排序,对前n-1个记录进行同样的操作,结果是使关键字次大的记录被安置到第n-1个记录的位置上。当进行完第n-1趟冒泡排序时,所有记录都已有序排列。
               3)简单选择排序
               简单选择排序的基本思想是:在进行每趟排序时,从无序的记录中选择出关键字最小(或最大)的记录,将其插入到有序序列(初始时为空)的尾部。
               希尔排序
               希尔排序又称"缩小增量排序",是对直接插入排序方法的改进。希尔排序的基本思想是:先将整个待排记录序列分割成若干序列,然后分别进行直接插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。
               快速排序
               快速排序是对冒泡排序的一种改进。先通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,使得整个序列有序。
               堆排序
               1)堆的概念
               对于n个元素的关键字序列{k1,k2,…,kn},当且仅当所有关键字都满足下列关系时称其为堆:
               
               从序列元素间的关系来看,堆是一棵完全二叉树的层次序列。显然,堆顶元素为序列中n个元素的最小值(或最大值)。若堆顶为最小元素,则称为小根堆;若堆顶为最大元素,则称为大根堆。
               2)堆排序的基本思想(小根堆)
               对一组待排序记录的关键字,首先把它们按堆的定义排成一个堆序列,从而输出堆顶的最小关键字,然后将剩余的关键字再调整成新堆,便得到次小的关键字,如此反复进行,直到全部关键字排成有序序列。
               归并排序
               归并排序是不断将多个小而有序的序列合成一个大而有序的序列的过程。其中最常用的归并排序是二路归并排序,它是将整个序列中的元素进行分组,相邻的两个元素为一组,然后分别为每个小组进行排序,随后将两个相邻的小组合成一个组,继续进行组内排序;直到所有元素被合并成一个组内,并使组内元素有序,此时排序结束。
               基数排序
               基数排序的思想是按组成关键字的各个数位的值进行排序,它是分配排序的一种。基数排序把一个关键字Ki看成一个d元组,即
               
               其中称为最高有效位,@称为最低有效位。基数排序可以从最高有效位开始,也可以从最低有效位开始。
               基数排序的基本思想是:设立r个队列(r为基数),队列的编号为0, 1, 2, …,r-1。首先按最低有效位的值,把n个关键字分配到这r个队列中;然后从小到大将各队列中的关键字再依次收集起来;接着再按次低有效位的值把刚收集起来的关键字再分配到r个队列中。重复上述收集过程,直至最高位有效。这样得到了一个从小到大有序的关键字序列。
 
       稳定性
        运维要求系统不间断服务,即提供7×24不间断服务,专人值守,监控网站;意外情况下,及时通知信息中心相关负责人,并做好各项应急准备。定期向信息中心相关负责人汇报网站运营情况。另外,对于响应时间也有要求,所以要监控网站群访问速度,如访问响应时间过长,及时查找原因,并向信息中心相关负责人汇报;监控网站群动态应用,对影响应用性能方面因素及时预警,并提出相应解决方案,及时汇报给信息中心相关负责人。
               IT服务体系整体结构
               只有高效、稳定、个性化的本地化服务模式才能满足用户随时随地的服务需求;也只有迅速的维护响应才能真正保证用户的利益不受损害。因此在自身服务体系的基础上,针对政府门户网站内容管理平台运维项目,特定IT服务体系,由响应体系、维护体系和质量监督体系构成。
               (1)客户需求。在服务协议规定范围内的任何服务请求,包括咨询、问题申报、投诉等。
               (2)响应体系。第一时间受理客户的需求,以最快的速度解决问题,保障客户系统尽快恢复正常。
               (3)维护体系。对客户系统进行主动式服务,发现并解决系统隐患,优化系统性能,并提出合理的改进和升级建议。
               (4)质量监督体系。为保障服务的质量制定相关的服务协议,通过满意度调查等方式评估服务的提供是否正常。
               IT服务体系最终都可以通过本次项目建设的ITIL运维体系落实,响应体系对应ITIL运维体系的“事件管理”,维护体系对应ITIL运维体系的“问题管理”,质量监督体系则通过“运维管理”来实现。
               响应体系
               响应体系包含服务台和突发事件管理,主要任务是受理客户的服务需求,尽快恢复客户系统的正常运行。
               客户有问题可以通过热线电话、Email与服务台联系,服务台负责接听技术服务电话、受理客户问题,进行记录,分类并转给相应的工程师处理。二线工程师负责处理服务台分配的事件或问题,当二线工程师需要技术支持时,可以从公司总部或第三方获得到技术支持和实验室环境支持。
   题号导航      2022年上半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第29题    在手机中做本题