201305系分下午真题

第 1 题

某软件公司拟为物流企业开发一套库存管理系统,该系统的部分需求陈述如下:

(1)库存管理系统主要包括货物入库管理、货物出库管理、仓库管理、统计报表和系统管理等功能;

(2)库存管理系统的用户包括仓库管理员、仓库经理和系统管理员,用户必须在注册后才能使用系统功能;用户可以选择使用邮件注册或电话注册。

(3)仓库管理员在进行出入库操作前必须先登录;仓库经理可以通过系统查看统计报表,如果前一个月的报表未生成,则系统自动生成统计报表,否则直接显示。

(4)系统管理员可以在系统中设置仓库温度范围,当仓库内温度超过最高值或者低于最低值时,系统自动调用温控管理操作,连接温度调节系统进行制冷或加热。

(5)仓库管理功能要求每个月1日零点对前一个月货物入库和出库记录进行数据汇总操作。项目组决定构造用例模型以描述系统需求。

【问题1】(6分)

用例建模的首要任务是识别系统中的参与者。请根据题目中所描述的需求,识别出系统中有哪些参与者?

【问题2】(7分)

用例建模的主要工作是书写用例规约。用例规约通常包括哪几部分内容?
【问题3】(12分)
建立了用例模型后,可以利用用例之间的关系调整用例模型,用例之间的关系包括哪几种?对于每种关系,请根据题目中所描述的需求分别给出一组用例。
**答案与解析** - 试题难度:较难 - 知识点:案例分析>需求工程 - 试题答案:

【问题1】
用例模型的参与者:仓库管理员、仓库经理、系统管理员、时间、温度、温度调节系统。
【问题2】
用例建模的主要工作是书写用例规约(use case specification),而不是画图。用例模板为一个给定项目的所有人员定义了用例规约的结果,其内容至少包括用例名、参与者、目标、前置条件、事件流(基本事件流和扩展事件流)和后置条件等,其他的还可以包括非功能需求和用例优先级等。
【问题3】
(1)用例之间的关系包括:包含关系、扩展关系、泛化关系。
(2)“出入库操作”与“登录”属于包含关系;
“查看统计报表”与“生成统计报表”属于扩展关系;
“用户注册”与“电话注册”、“邮件注册”与“电话注册”属于典型的泛化关系。

- 试题解析:

用例模型的参与者:仓库管理员、仓库经理、系统管理员、时间、温度、温度调节系统。

用例建模的主要工作是书写用例规约(use case specification),而不是画图。用例模板为一个给定项目的所有人员定义了用例规约的结果,其内容至少包括用例名、参与者、目标、前置条件、事件流(基本事件流和扩展事件流)和后置条件等,其他的还可以包括非功能需求和用例优先级等。
在建立了初步的用例模型后,还可以利用用例之间的关系来调整用例模型。用例之间的关系主要有包含、扩展和泛化,利用这些关系,把一些公共的信息抽取出来,以便于复用,使得用例模型更易于维护。
(1)包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。例如,图11-10中的“学习课程”和“课程测试”两个用例都需要检查学员的权限,为此,可以定义一个抽象用例“检查权限”。用例“学习课程”和“课程测试”与用例“检查权限”之间的关系就是包含关系,如图11-11所示。其中“<<include>>”是包含关系的构造型,箭头指向抽象用例。
 
                                                                                     

 图11-11 包含关系的例子

当多个用例需要使用同一段事件流时,抽象成为公共用例,可以避免在多个用例中重复地描述这段事件流,也可以防止这段事件流在不同用例中的描述出现不一致。当需要修改这段公共的需求时,也只要修改一个用例,避免同时修改多个用例而产生的不一致性和重复性工作。另外,当某个用例的事件流过于复杂时,为了简化用例的描述,也可以将某一段事件流抽象成为一个被包含的用例。
(2)扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。例如,图11-10中的学员进行“课程测试”时,其测试的次数可能已超出系统规定的限额,这时就需要学员“充入学习币”。用例“课程测试”和“充入学习币”之间的关系就是扩展关系,如图11-12所示。其中“<<extend>>”是扩展关系的构造型,箭头指向基本用例。
                                                                                   

图11-12 扩展关系的例子

(3)泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。例如,图11-10中学员进行课程注册时,假设既可以通过电话注册,也可以通过网上注册,则“注册课程”用例就是“电话注册”用例和“网上注册”用例的泛化,如图11-13所示。其中三角箭头指向父用例。
 
                                                                                          

 图11-13 泛化关系的例子

在本题中,“出入库操作”与“登录”属于包含关系;“查看统计报表”与“生成统计报表”属于扩展关系;“用户注册”与“邮件注册”和“电话注册”属于典型的泛化关系。
### 第 2 题

某高校计算机学院实验中心有5个机房,200个机位,主要承担学生计算机软件相关课程的上机实践任务。实验中心每年工作时间约为200天,每天平均工作时间为8小时。2013年初,实验中心决定对机房进行升级改造,其中UPS电源等设备不需要重新购置,改造后每个机位机器的基本配置要求如表2-1。实验中心现公开征集硬件改造方案。

表2-1  实验中心机器配置要求


一个月后,实验中心的主管从众多的改造方案中选择了A公司和B公司提出的方案进行最终评审。A公司主张采用PC机更新换代的方式进行改造,其主要的设备和报价如表2-2所示。

表2-2  A公司的改造方案


B公司主张以桌面云的方式对实验中心进行全面改造,其主要的设备和报价情况如表2-3所示。

表2-3  B公司的改造方案


实验中心组织多名专家召开论证会,会上专家对这两种方案进行了评审,最终采纳了B公司的改造方案。

【问题1】(7分)
桌面云方案的核心是虚拟化技术,请用200字以内的文字说明什么是虚拟化技术,并从应用角度列举3种虚拟化技术。
【问题2】(18分)
请以A公司方案中的机器性能为基准,从应用模式、投入成本、运维成本、安全性、能源消耗等5个方面对两种方案进行详细比较(其中投入成本与能源消耗要求量化比较),说明为什么专家采纳了B公司的改造方案。

答案与解析

  • 试题难度:较难
  • 知识点:案例分析>新技术的应用
  • 试题答案:

    【问题1】
    虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
    虚拟化技术应用非常广泛,常见的包括:
    1、使用VMware软件,在Windows平台下安装linux操作系统。
    2、存储的虚拟化,在云存储中,就应用到了存储的虚拟化。
    3、服务器虚拟化,目前多家公司推出了虚拟化服务器,这种服务器可以用一台硬件设备,虚拟出多台服务器对外提供服务。
    【问题2】
    应用模式:A公司方案是一种分散式的计算模式,这种模式每个节点都相对独立,每个节点都要求一定的运算能力,当节点运算能力不足时,便需要整体升级。而B公司方案是一种虚拟化的方案,他将服务器的运算能力按需求分配给各个节点使用,当运算能力不足时,可通过增加服务器的方式,方便的升级。
    投入成本:
    A公司方案的投入成本为:(3100+900)×200+1000×10=810000元。
    B公司方案的投入成本为:30000×14+(500+900)×200+1000×11+10000×2=731000元。
    所以B公司的方案投入成本较小。
    运维成本:B公司方案维护成本比A公司方案低,因为A公司方案中,需要维护的计算机有200台之多,而B公司方案只需要维护14台服务器。
    安全性:B公司方案安全性比A公司方案高,因为A公司方案中,200台主机都带存储,都是独立的系统,其中任何一台机器出现安全问题都可以影响到其他机器。而B公司方案中,只要维护好14台服务器即可,此时出安全问题的可能性会低很多。
    能源消耗:
    A公司方案的能源消耗为:((230W+25W)×200+30W×10)×8×200=82080000瓦时=82080千瓦时。
    B公司方案的能源消耗为:(800W×14+(23W+25W)×200+30W×11)×8×200=33808000瓦时=33808千瓦时。
    B公司的方案能源消耗远远低于A公司方案。

  • 试题解析:

    本题考查虚拟化技术,这种技术在系统分析师考试中进行考查,仍会归类于新技术,在应对这类试题时,考生首先需要避免恐惧心态。不要认为这个技术自己不是很熟悉,就认为很难以回答,其实对新技术的考查,试题往往会给出更多,更全面的信息,从而让试题解答变得更容易,本题便是如此,完全不懂虚拟化技术的考生也可答对一半的问题。
    虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
    虚拟化技术应用非常广泛,常见的包括:
    1、使用VMware软件,在Windows平台下安装linux操作系统。
    2、存储的虚拟化,在云存储中,就应用到了存储的虚拟化。
    3、服务器虚拟化,目前多家公司推出了虚拟化服务器,这种服务器可以用一台硬件设备,虚拟出多台服务器对外提供服务。
    接下来需要分析的是两个公司的方案优劣,题目已给出了需要比较的几个方面。
    应用模式:A公司方案是一种分散式的计算模式,这种模式每个节点都相对独立,每个节点都要求一定的运算能力,当节点运算能力不足时,便需要整体升级。而B公司方案是一种虚拟化的方案,他将服务器的运算能力按需求分配给各个节点使用,当运算能力不足时,可通过增加服务器的方式,方便的升级。
    投入成本:
    A公司方案的投入成本为:(3100+900)×200+1000×10=810000元。
    B公司方案的投入成本为:30000×14+(500+900)×200+1000×11+10000×2=731000元。
    所以B公司的方案投入成本较小。
    运维成本:B公司方案维护成本比A公司方案低,因为A公司方案中,需要维护的计算机有200台之多,而B公司方案只需要维护14台服务器。
    安全性:B公司方案安全性比A公司方案高,因为A公司方案中,200台主机都带存储,都是独立的系统,其中任何一台机器出现安全问题都可以影响到其他机器。而B公司方案中,只要维护好14台服务器即可,此时出安全问题的可能性会低很多。
    能源消耗:
    A公司方案的能源消耗为:((230W+25W)×200+30W×10)×8×200=82080000瓦时=82080千瓦时。
    B公司方案的能源消耗为:(800W×14+(23W+25W)×200+30W×11)×8×200=33808000瓦时=33808千瓦时。
    B公司的方案能源消耗远远低于A公司方案。

第 3 题

阅读有关嵌入式系统新架构风格方面的描述,在答题纸上回答问题1至问题3。

在传统的嵌入式系统中,由于应用背景的不同,架构风格存在着差异。某公司长期从事各类嵌入式电子产品的研发工作,为了扩展业务,拟承担安全关键嵌入式产品的研制,为了统一本公司嵌入式产品的架构,以兼顾安全关键系统和非安全关键系统,公司领导层提出了采用国外近年新的跨领域嵌入式系统架构,新架构主要有6个特点:

(1)面向构件化

(2)开放式

(3)支持多种安全级别

(4)服务的层次化

(5)确定性核心

(6)内部组合的标准化

图3-1给出了跨领域嵌入式系统架构,图中CS表示领域无关的核心服务、OS表示领域无关的选择性服务、DSC表示领域相关的中心服务、DSO表示领域相关的选择性服务。该架构通常称为“腰”型架构,将嵌入式系统分为核心服务层、域服务层和应用服务层三个层次,实现了应用间相对无关性设计,架构的腰部为与领域无关的核心服务。


图3-1 跨领域嵌入式系统架构

【问题1】(8分)
请用200字以内文字说明图3-1“腰”型架构的特点。
【问题2】(10分)
针对图3-1的“腰”部的核心层,表3-1中给出了10种服务,请判断这些服务中哪些属于核心服务(Core Services),哪些属于选择性服务(Optional Service),将结果填到表3-1中。

表3-1  10种服务类归属CS/OS两类服务

【问题3】(7分)
该公司遵从图3-1定义的嵌入式架构风格,梳理了现有产品序列,定义了公司产品中涉及的软件主要包括以下4类:
(1)基于分区化的嵌入式操作系统(如:VxWorks653)
(2)存储管理部件(如:文件系统)
(3)支持产品互联的多种网络协议部件(如:TCP/IP、ppp、CAN、1394等)
(4)应用软件
请根据你所掌握上述软件的相关知识,说明这些软件应归属图3-1中核心服务层、域服务层和应用服务层中的哪一层。并举例说明上述软件提供的服务中哪些归属于架构的OS、CS、DSC和DSO服务,填写表3-2。
表3-2  4类服务的服务举例


**答案与解析** - 试题难度:较难 - 知识点:案例分析>嵌入式方向 - 试题答案:

【问题1】
耦合程度低、复用程度高、面向构件化、开放式、支持多种安全级别、服务的层次化、确定性核心、内部组合的标准化等特点。
【问题2】

表3-1  10种服务类归属CS/OS两类服务


 
【问题3】
核心服务层:(1)(2)                      域服务层:(3)                           应用服务层:(4)
表3-2  4类服务的服务举例


- 试题解析:

本题考查嵌入式系统新架构风格。
题目所涉及到的架构既然是一种新架构,那么必然大部分考生是未接触与使用过该架构的,所以在解题时,更多的是考查基本功与分析问题的能力。
【问题1】要求说明新架构的特点。从架构的示意图可知,架构是分层次的,所以它具备分层架构的一些特点,如:层与层之间进行了解耦,所以降低了耦合程度;上层可复用下层的功能。同时题目已明示,该架构有:面向构件化、开放式、支持多种安全级别、服务的层次化、确定性核心、内部组合的标准化等特点。
【问题2】要求分析给出的服务归属于哪种服务类型,这需要一定的经验,但同时也有技巧性。如,在题目给出的服务中,即有“基本***服务”也有“高级**服务”,这种情况,“基本***服务”必然是属于核心服务,而“高级**服务”属于选项服务。因为核心服务就有不可少的,最基本的服务的理念,而选择服务是可有可无的。依据该原则,已可解决半数问题。另外的服务类型则需要根据考生的经验进行判断。

【问题3】是把给出的软件产品进行分类,题目给出的分类有:核心服务层、域服务层和应用服务层。核心服务层对应着域无关的核心服务与选择服务,所以(1)(2)都属于这个层次,而(3)对应的是DSC层(配图中已标识),所以归属于域服务层,应用软件属于典型的应用服务层。
然后进一步划分,(1)属于CS,(2)属于OS,其中(4)应用软件是并不属于CS、OS、DSC、DSO这个范围,而是他们之上,所以无需填入。

第 4 题

阅读以下关于数据库分析与设计的叙述,在答题纸上回答问题1至问题4。

某集团公司在各省均设有分公司,现欲建立全国统一的销售管理信息系统,以便总公司及时掌握各分公司的销售情况。公司成立专门的项目组进行该系统的研发工作,其中张工负责其中的数据库设计工作。

张工和需求分析小组紧密合作,在设计出数据流图和数据字典的基础上,给出了数据库关系模式和相应的索引设计。同时考虑到未规范化关系模式可能引起的各类数据错误,对关系模式进行了全面的规范化处理,使所有关系模式均达到了3NF或BCNF。

在项目实施过程中,应用开发小组认为该设计方案未考虑应用功能的实际需求。如果严格按照设计方案实施,会对应用系统中整体性能产生较大影响。主要的原因在于进行数据查询时,会产生大量的多表连接操作,影响性能。而设计方案中的索引设计,并不能完全满足数据查询的性能要求。

应用开发小组还认为,该设计方案未考虑到信息系统中核心销售数据处理的特点:各分公司在使用该信息系统时只能操作自己分公司的销售数据,无权操作其他分公司的销售数据;只有总公司有权利操作所有销售数据,以便进行统计分析。

应用开发小组要求,在数据库设计方案中,必须针对实际应用功能的实现来考虑关系模式的规范化,必要时需要采用逆规范化或解除规范化的方法来保证性能要求。

【问题1】(8分)

系统需要管理供应商和货物等信息,具体包括供应商姓名、地址以及货物名称、价格等,供应商可以提供0~n种货物,其公司地址也可能发生变化。请以供应商关系模式supplier(name,address,product,price)为例,解释不规范的关系模式存在哪些问题。
【问题2】(6分)
应用开发小组认为张工的规范化设计虽然解决了未规范化关系模式带来的问题,但实际实现功能时会造成系统性能的下降,请解释其原因。
【问题3】(5分)
请解释逆规范化方法,说明其优缺点。
【问题4】(6分)
针对该信息系统中核心销售数据处理的特点,如采用关系表水平分割的逆规范化方法,请给出具体的解决方案,并说明该方案存在的问题。
**答案与解析** - 试题难度:较难 - 知识点:案例分析>数据库方向 - 试题答案:

【问题1】(8分)

(1)数据冗余:关系模式中多次重复记录了同一供应商的地址。
(2)插入异常:如果还未确定一个供应商有哪些货物,只是想添加一个供应商的地址信息,则会产生产品与价格均为空的记录。
(3)修改异常:当修改一个供应商的地址时,需要将多条记录同时更新,若未同时更新,则数据产生不一致。
(4)删除异常:当删除一个供应商的货物时,其地址信息被一并删除。
【问题2】(6分)
数据库规范化的过程,实际是对数据表的不断拆分,以达到更高的规范程度。这样处理,带来的问题是:系统中大量查询不能通过单表完成,而需要将多表进行连接查询,所以表拆分得越多,查询性能也就越差。
【问题3】(5分)
逆规范化方法优点:提高统计、查询效率。
逆规范化方法缺点:增加了数据冗余,浪费存储空间,增、删、改操作的效率降低,可能导致数据不一致,可能产生添加、修改、删除异常。
【问题4】(6分)
解决方案:将各省的数据存放于各省分公司。
该方案主要问题:
(1)在于总公司进行全国数据统计时,需要从各省服务器调取数据,效率较低。
(2)执行应用功能时需要动态选择分公司的数据库表,增加了应用程序的复杂度。
- 试题解析:

本题是一个数据库设计方面的考题,考查的知识点包括规范化理论和反规范化理论(逆规范化)。

规范化的基本思想是逐步消除不合适的函数依赖,使数据库中的各个关系模型达到某种程度的分离。规范化解决的主要是单个实体的质量问题,是对于问题域中原始数据展现的正规化处理。
规范化理论给出了判断关系模型优劣的理论标准,帮助预测模式可能出现的问题,是数据库逻辑设计的指南和工具,具体有:
(1)用数据依赖的概念分析和表示各数据项之间的关系。
(2)消除E-R图中的冗余联系。
若不进行规范化处理,可能产生的问题包括:数据冗余、修改异常、插入异常、删除异常。下面举例说明这些问题的具体表现形式。
设有一个关系模式R(SNAME,CNAME,TNAME TADDRESS),其属性分别表示学生姓名、选修的课程名、任课教师姓名和任课教师地址。仔细分析一下,就会发现这个模式存在下列存储异常的问题:
(1)数据冗余:如果某门课程有100个学生选修,那么在R的关系中就要出现100个元组,这门课程的任课教师姓名和地址也随之重复出现100次。
(2)修改异常:由于上述冗余问题,当需要修改这个教师的地址时,就要修改100个元组中的地址值,否则就会出现地址值不一致的现象。
(3)插入异常:如果不知道听课学生名单,这个教师的任课情况和家庭地址就无法进入数据库;否则就要在学生姓名处插入空值。
(4)删除异常:如果某门课程的任课教师要更改,那么原来任课教师的地址将随之丢失。
在本题中,也存在同样的问题:
(1)数据冗余:关系模式中多次重复记录了同一供应商的地址。
(2)插入异常:如果还未确定一个供应商有哪些货物,只是想添加一个供应商的地址信息,则会产生产品与价格均为空的记录。
(3)修改异常:当修改一个供应商的地址时,需要将多条记录同时更新,若未同时更新,则数据产生不一致。
(4)删除异常:当删除一个供应商的货物时,其地址信息被一并删除。
数据库中的数据规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度,但是对完全规范的数据库查询,通常需要更多的连接操作,从而影响查询的速度。因此,有时为了提高某些查询或应用的性能而破坏规范规则,即反规范化(非规范化处理)。
因此,题目中所说的“应用开发小组认为张工的规范化设计虽然解决了未规范化关系模式带来的问题,但实际实现功能时会造成系统性能的下降”,主要就是查询效率下降。其原因是规范化过程中对数据表进行了不断的拆分,导致一个查询需要进行多表连接,效率自然就下降了。
具体来说,常见的反规范化技术包括:
(1)增加冗余列

增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。例如:以规范化设计的理念,学生成绩表中不需要字段“姓名”,因为“姓名”字段可以通过学号查询到,但在反规范化设计中,会将“姓名”字段加入到表中。这样查询一个学生的成绩时,不需要与学生表进行连接操作,便可得到对应的“姓名”。

(2)增加派生列
增加派生列指增加的列可以通过表中其他数据计算生成。它的作用是在查询时减少计算量,从而加快查询速度。例如:订单表中,有商品号、商品单价、采购数量,我们需要订单总价时,可以通过计算得到总价,所以规范化设计的理念是无须在订单表中设计“订单总价”字段。但反规范化则不这样考虑,由于订单总价在每次查询都需要计算,这样会占用系统大量资源,所以在此表中增加派生列“订单总价”以提高查询效率。
(3)重新组表
重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
(4)分割表
有时对表做分割可以提高性能。表分割有两种方式:
水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。水平分割通常在下面的情况下使用:
情况1:表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,提高查询速度。
情况2:表中的数据本来就有独立性,例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另外一些数据不常用。
情况3:需要把数据存放到多个介质上。
垂直分割:把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。如果一个表中某些列常用,而另外一些列不常用,则可以采用垂直分割,另外垂直分割可以使得数据行变小,一个数据页就能存放更多的数据,在查询时就会减少I/O次数。其缺点是需要管理冗余列,查询所有数据需要连接操作。 问题4要求提出水平分割方案,实际上就是把数据表按记录进行拆分,并存储于不同的位置。由于本题中数据的使用存在这样的特性——“各分公司在使用该信息系统时只能操作自己分公司的销售数据,无权操作其他分公司的销售数据;只有总公司有权利操作所有销售数据,以便进行统计分析”,所以按省,每个分公司存储自己的数据,这样能达到高效查询的目的,只是这样会让总公司的统计分析变得十分的低效,并且执行应用功能时需要动态选择分公司的数据库表,增加了应用程序的复杂度。
### 第 5 题

阅读以下关于软件维护的叙述,在答题纸上回答问题1至问题4。

某企业两年前自主研发的消防集中控制软件系统在市场上取得了较好的业绩,目前已成功应用到国内外众多企业用户的消防管理控制系统中。该软件系统通过不同型号消防控制器连接各种消防器件,实现集中式消防告警信息显示与控制。日前该软件系统的系统维护主管组织召开会议,对近期收集到的该软件系统的如下维护申请进行了讨论:

(1)将系统目前的专用报表功能改成通用报表生成功能,以适应未来用户可能提出的报表格式变化需求;

(2)在界面语言中增加德文支持,以满足新增的两个德国企业用户的使用要求;

(3)修正系统在与控制器通信时由于硬件网络故障导致的与控制器之间的连接失效,而控制器后续无法重新连接的问题;

(4)完成因某已支持型号消防控制器通信协议改变而导致的相应软件修改;

(5)增加与某新型号消防控制器的互连通信功能,以支持在后续推广过程中与该型号消防控制器进行互连;

(6)修正用户报告的由于系统从Win7平台迁移到最新发布的Win8平台而导致的部分显示功能失效的问题;

(7)修正用户报告的系统自动切换消防平面图形时部分器件位置显示错误的问题;

(8)改进系统历史消防告警记录的检索算法,以提高系统在处理大量消防报警记录时的效率;

(9)将系统目前针对某一特定数据库管理系统的数据库访问方式改成基于数据源的通用数据库访问方式,以适应用户可能提出的使用其他数据库管理系统的需求。

【问题1】(6分)

软件维护的内容通常分为正确性维护、适应性维护、完善性维护以及预防性维护四类,请用300字以内文字说明这4类软件维护内容的特点与区别。
【问题2】(9分)
请根据不同类型软件维护的特点,将上述(1)~(9)的维护申请填入表5-1相应的类别中。
表5-1  维护申请分类表

【问题3】(4分)
对于软件维护申请的处理,首先需要确定维护工作的类型,不同类型的维护工作,其处理流程往往不同,图5-1是区分不同维护类型的典型处理流程,请将表5-1中代表维护类型的序号(1)~(4)填入图5-1的(a)~(d)。
【问题4】(6分)
在讨论第(4)项维护工作的方案时,项目组发现与相应的消防控制器通信的子模块重用了企业之前淘汰的某款软件中实现相应功能的源代码,而现有技术人员没有参加过该代码的开发工作,并且重用的这部分代码开发不规范,其数据和代码结构设计都很差,相应的文档极不完整,维护记录也很简略。针对上述情况,项目组一致认为在原有代码基础上进行修改维护难度很大,因此决定采用软件工程的方法对该子模块进行重新设计、编码和测试,请从可行性和该模块后续可维护性两个方面简要分析采取这种方案的原因。

**答案与解析** - 试题难度:较难 - 知识点:案例分析>系统运行和维护 - 试题答案:

【问题1】(6分)

(1)改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护。
(2)适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
(3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
(4)预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。
【问题2】(9分)
(1)正确性维护 (3)(7)
(2)适应性维护 (4)(6)
(3)完善性维护 (2)(5)(8)
(4)预防性维护 (1)(9)
【问题3】(4分)
(a):(2)
(b)(c):(3)(4)
(d):(1)
【问题4】(6分)
目前的模块无文档,且已属于淘汰模块,重新开发比修改维护成本更低、效果更好,同时有利于后期的维护(一方面是开发人员对新开发的模块有很高的熟悉程度,另一方面新开发会有完善的文档)。
- 试题解析:

在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下四种:
(1)改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护。
(2)适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
(3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
(4)预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。
【问题2】的维护申请分类可参看上述维护定义进行分类。
【问题3】中的申请流程,主要区分原则是:有错误,需要修正的维护类型,其维护操作是必然的,只是依据严重性来分析是立即修改,还是添加到队列中,等待修改,所以(d)应填(1)。适应性维护类型往往是在环境发生变化时,带来的一些小毛病,这样的维护也是必须进行的,但没有严重的正确性维护那么迫切,直接进队列即可,所以(a)应填(2)。而完善性维护与预防性维护并不见得都必须进行,而需要进行评估与分类,并有可能淘汰一些维护申请,所以(b)(c)填:(3)(4)。
【问题4】是一个现实生活中常见的问题,对于过时的,无文档的模块,最佳方案是重新开发。重新开发带来的好处的多方面的:省时,省力,为以后的维护打下良好的基础。

results matching ""

    No results matching ""