免费智能真题库 > 历年试卷 > 信息系统监理师 > 2017年下半年 信息系统监理师 上午试卷 综合知识
  第32题      
  知识点:   软件维护   编译器   操作系统   软件维护   软件支持   软件支持环境   维护
  关键词:   编译器   操作系统   软件产品   软件维护   编译   维护        章/节:   软件与软件工程知识       

 
软件产品交付使用后,一般需要进行软件维护。当软件支持环境(如操作系统编译器等)发生变化导致软件无法正常运行时,所需要进行的修改工作属于( )。
 
 
  A.  纠错性维护
 
  B.  适应性维护
 
  C.  完善性维护
 
  D.  预防性维护
 
 
 

 
  第33题    2017年上半年  
   42%
软件纠错维护是纠正在开发阶段产生而在测试和验收过程没有发现的错误,其主要内容不包括( )。
  第25题    2020年下半年  
   61%
某电子商务平台计划在异地部署新的同步运行主机,需要将现行软件平台调整保持双主机运行。该软件维护属于( )。
  第29题    2019年下半年  
   47%
某单位在系统试运行阶段,因相关政策变化造成软硬件配置发生变化,系统需要进行( )。
   知识点讲解    
   · 软件维护    · 编译器    · 操作系统    · 软件维护    · 软件支持    · 软件支持环境    · 维护
 
       软件维护
        在软件维护阶段,主要考查软件维护的分类、软件的可维护性等。
        软件经过测试,交付给用户后,在使用和运行过程中可能在软件运行/维护阶段对软件产品进行的修改就是维护。
        软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充和压缩的容易程度。目前广泛用来衡量程序可维护性的因素包括可理解性、可测试性和可修改性等。
        软件维护占整个软件生命周期的60%~80%,维护的类型主要有以下三种。
        (1)改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。
        (2)适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入输出方式、数据存储介质)可能发生变化,为使软件适应这种变化而去修改软件的过程就叫做适应性维护。
        (3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。
        除了以上三类维护之外,还有一类维护活动,叫做预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。
        在软件开发过程中,错误纠正成本在逐步放大。也就是说,错误发现得越早,纠正错误所花费的成本就会越低,反之则越高。例如,如果在软件设计阶段有个错误未被发现,而待编码阶段时才发现,这时纠正这个设计错误比纠正源代码错误需要更大的成本。
 
       编译器
        编译阶段要做的工作是用交叉编译或汇编工具处理源代码,产生目标文件。在嵌入式系统中,宿主机和目标机所采用的处理器芯片通常是不一样的。例如,目标机采用的CPU是DragonBall M68x系列或ARM系列,而宿主机采用的是x86系列。因此,为了把宿主机上编写的高级语言程序编译成可以在目标机上运行的二进制代码,就需要用到交叉编译器。
        与普通PC中的C语言编译器不同,嵌入式系统中的C语言编译器要进行专门的优化,以提高编译效率。一般来说,优秀的嵌入式C编译器所生成的代码,其长度和执行时间仅比用汇编语言编写的代码长5%~20%。编译质量的不同,是区别嵌入式C编译器工具的重要指标。因此,硬件厂商往往会针对自己开发的处理器的特性来定制编译器,既提供对高级语言的支持,又能很好地对目标代码进行优化。
        GNU C/C++(gcc)是目前比较常用的一种交叉编译器,它支持非常多的宿主机/目标机组合。宿主机可以是Unix、AIX、Solaris、Windows、Linux等操作系统,目标机可以是x86、Power PC、MIPS、SPARC、Motorola 68K等各种类型的处理器。
        gcc是一个功能强大的工具集合,包含了预处理器、编译器、汇编器、连接器等组件。它在需要时会去调用这些组件来完成编译任务,而输入文件的类型和传递给gcc的参数决定了它将调用哪些组件。对于一般或初级的开发者,它可以提供简单的使用方式,即只给它提供C源码文件,它将完成预处理、编译、汇编、连接等所有工作,最后生成一个可执行文件。而对于中高级开发者,它提供了足够多的参数,可以让开发者全面控制代码的生成,这对于嵌入式系统软件开发来说是非常重要的。
        gcc识别的文件类型主要包括:C语言文件、C++语言文件、预处理后的C文件、预处理后的C++文件、汇编语言文件、目标文件、静态链接库、动态链接库等。以C程序为例,gcc的编译过程主要分为4个阶段:
        (1)预处理阶段,即完成宏定义和include文件展开等工作;
        (2)根据编译参数进行不同程度的优化,编译成汇编代码;
        (3)用汇编器把上一阶段生成的汇编码进一步生成目标代码;
        (4)用连接器把上一阶段生成的目标代码、其他一些相关的系统目标代码以及系统的库函数连接起来,生成最终的可执行代码。
        用户可以通过设定不同的编译参数,让gcc在编译的不同阶段停止下来,这样可以检查编译器在不同阶段的输出结果。
        在gcc的高级用法上,一般希望通过使用编译器达到两个目的:检查出源程序的错误;生成速度快、代码量小的执行程序。这可以通过设置不同的参数来实现,例如,“-Wall”参数可以发现源程序中隐藏的错误;“-O2”参数可以优化程序的执行速度和代码大小;“-g”参数可以对执行程序进行调试。
 
       操作系统
        编写嵌入式软件有两种选择:一是自己编写内核;二是使用现成的操作系统。如果嵌入式软件只需要完成一项非常小的工作,例如在电动玩具、空调中,就不需要一个功能完整的操作系统。但如果系统的规模较大、功能较复杂,那么最好还是使用一个现成的操作系统。可用于嵌入式系统软件开发的操作系统有很多,但关键是如何选择一个适合开发项目的操作系统,可以从以下几点进行考虑:
        (1)操作系统提供的开发工具。有些实时操作系统只支持该系统供应商的开发工具,因此,还必须从操作系统供应商处获得编译器、调试器等;而有的操作系统应用广泛,且有第三方工具可用,因此选择的余地比较大。
        (2)操作系统向硬件接口移植的难度。操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度高的操作系统,以避免因移植带来的种种困难。
        (3)操作系统的内存要求,有些操作系统对内存有较大要求。
        (4)操作系统的可剪裁性、实时性能等。
 
       软件维护
        系统维护工作的对象是整个系统的配置。由于问题可能来源于系统的各个组成部分,产生于系统开发的各个阶段,因此系统维护工作并不仅仅是针对源程序代码,而且还包括了系统开发过程中的全部开发文档。所以,一旦业务处理出现问题或发生变化,就要修改应用程序及有关文档。软件维护是系统维护最主要的内容。
               软件维护管理
               (1)任何人员不得擅自对系统文件进行删除或修改。软件操作人员不得对系统文件进行任何内容的操作。
               (2)系统管理员对软件系统进行全面维护,并进行记录。
               (3)定期对系统进行病毒检查。
               (4)建立故障报告制度。系统运行或软件操作中发生故障,如属简单故障,由系统管理员现场解决;现场无法解决的,由第一发现者进行故障登记,部门负责人会同系统管理员制定处理方案(方案包括:故障分析、拟采取措施、保障数据安全防范措施等),经核算中心分管主任批准后实施。对于无法排除的故障,由系统管理员及时联系相关单位解决。
               (5)对软件进行修改、升级时,首先要全面备份系统的数据,做好新旧系统数据的衔接工作。
               按照维护的具体目标分类
               (1)完善性的维护。完善性维护就是在应用软件系统使用期间为不断改善和加强系统的功能和性能,以满足用户日益增长的需求所进行的维护工作。在整个维护工作量中,完善性维护居第一位。
               (2)适应性维护。适应性维护是指为了让应用软件系统适应运行环境的变化而进行的维护活动。适应性维护工作量约占整个维护工作量的25%。
               (3)纠错性维护。纠错性维护的目的在于,纠正在开发期间未能发现的遗留错误。对这些错误的相继发现,对它们进行诊断和改正的过程被称为纠错性维护。这类维护约占总维护工作量的20%。
               (4)预防性维护。其主要思想是维护人员不应被动地等待用户提出要求才做维护工作,而应该选择哪些还有较长使用寿命的部分加以维护。
               按照开发方分类
               自己公司开发的软件、合同开发的软件、市场买的软件,这三种软件的维护途径可以是不同的。
               自己公司开发的软件一般由原开发人员进行维护。
               按合同开发的软件产品交付后,开发方应依据开发时签定的合同,负责软件的维护和软件版本升级工作。维护活动一般包括:对顾客使用中出现的软件故障进行测试、分析和修复;在维护阶段,按顾客提出的功能和性能改进要求进行软件版本升级,升级后的软件版本应纳入配置管理,并保存软件维护、升级记录。
               若购买了某种软件产品且该软件在产品支持周期内,则还可以购买该软件公司的软件维护服务。软件公司为软件产品用户推出专业技术支持服务,服务一般由公司具有丰富产品知识和实践经验的资深软件工程师协同技术中心专家组成专业技术团队共同提供,目的是帮助客户及时、快速、可靠地解决在软件系统的维护过程中所遇到的技术问题,使得客户的软件系统可以更加安全稳定地运行,以保障和促进客户业务的顺利开展并取得更大的成功。
               软件维护合同一般包括软件的更新和技术支持。两者捆绑在一起每年统一收取一笔费。客户需要签定软件维护合同,以获得技术支持和将来的升级服务。在多数情况下合同的主要目的是软件的更新。
               系统维护中经常会遇到一些问题。系统维护中的编码本身造成的错误比例并不高,仅占4%左右,而绝大部分问题源于系统分析和设计阶段。通常,理解别人编写的程序是很难的,且难度随着软件配置文档的减少而增加;绝大多数系统在设计和开发时并没有很好地考虑将来可能的修改,如有些模块不够独立,牵一发而动全身;系统维护工作相对缺乏挑战性,使系统维护人员队伍不稳定。所以,一般来说,系统维护人员应当就是系统的原开发人员中的一部分。
 
       软件支持
        iOS不仅自带一些常用的应用程序,更具有特色的是,iOS 2.0可以通过App Store支持第三方应用程序。
        以iOS 4.3版本为例,iPhone的主接口包括以下自带的应用程序:SMS(短信)、日历、照片、YouTube、股市、地图(AGPS辅助的Google地图)、天气、时间、计算器、备忘录、系统设置、iTunes(将被链接到iTunes Music Store和iTunes广播目录)、App Store、Game Center以及联络信息。iPad只保留了部分iPhone自带的应用程序,包括日历、通讯录、备忘录、视频、YouTube、iTunes Store、App Store以及设置;四个位于屏幕最下方的常用应用程序是Safari、Mail、照片和iPod。
        App Store允许用户从iTunes Store或Mac App Store浏览和下载一些为iPhone SDK或Mac开发的应用程序。用户可以购买或免费试用,将应用程序直接下载到iPhone、iPod Touch、iPad、Mac,其中包含游戏、日历、翻译程式、图库以及许多实用的软件。App Store在iPhone、iPod Touch、iPad以及Mac的应用程序商店都具有相同的名称。
 
       软件支持环境
        《GB/T 15853—1995软件支持环境》规定了软件支持环境的基本要求,软件开发支持环境的内容及实现方法,以及对支持部门支持能力的具体要求。
        软件支持环境可以分为如下两种类型:
        .软件开发支持环境:由软件承办单位确定、并经任务委托单位认可的资源,用于支持合同项目中的软件需求。
        .软件生存周期支持环境:由软件生存周期部门使用的(属于任务委托单位)资源,用于为指定的目标机系统提供整个生存周期内的软件支持。
        软件支持环境标准描述了四种软件来源:
        .商品软件:在市场上销售或出租的软件。
        .自行开发的软件:自行独立开发的非商品软件。
        .任务委托单位提供的软件:任务委托单位向承办单位提供的软件,用于开发合同指定的软件项目,并包含在软件开发支持环境中。
        .承办单位开发的软件:合同项目所规定的软件,包括承办单位正在开发或要开发的软件。
        在软件生存期支持机构中建立软件支持能力包括以下四方面的要求:
        .对增加的软件和规程进行标识。
        .对软件生存期软件支持环境的运作进行说明。
        .软件生存期支持环境移交。
        .满足支持能力和兼容性要求。
 
       维护
        维护阶段是软件生存期中时间最长的阶段。软件一旦交付正式投入运行后便进入软件维护阶段。该阶段的关键任务是通过各种必要的维护活动使系统持久地满足用户的需要。每一项维护活动都应该准确地记录下来,作为正式的文档资料加以保存。
   题号导航      2017年下半年 信息系统监理师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第32题    在手机中做本题