【系统分析师之路】 第八章 复盘软件测试与维护(软件维护)
复盘软件测试与维护—软件维护
前言部分 历年真题考点分析
1)考点分析
软件维护是软件工程中的一个重要的知识点,对这个知识点的考察不仅出现在上午综合知识在案例分析和论文当中都有可能涉及到。所以他是一个需要我们重点准备的知识章节。
在上午综合知识中出现的概率更小一些,往往出现也考个1-2分;而在案例分析中到目前为止还考察过三次,都是25分的一个大题;在论文当中到目前为止一共考察过两次,分别考查的是遗留系统相关的知识和软件维护相关的知识。从目前的趋势来看,对软件维护章节的知识考查往往会伴随着其他章节(软件工程)的知识点一起,比如逆向工程,重构就有出现过。
2)重要知识点
1.遗留系统的四种演化策略
2.软件维护的四种类型
3.软件调试的三种方法
4.遗留系统和新系统之间的转换三策略
5.数据迁移的准备工作
6.遗留系统评价的主要活动
第一部分 综合知识历年真题
2007下综合知识历年真题(1分)
【2007下系分真题第21题:红色】
21.在软件调试中,(29)通过演绎或归纳并利用二分法来定位问题源。
(29)
A.蛮力法
B.回溯法
C.原因排除法
D.直觉
解答:答案选择C。蒙错。
软件调试一般有如下三种方法。
蛮力法
是为了找到错误原因而使用的最普通但又最低效的方法。
在程序运行时使用各种手段来跟踪程序的运行轨迹,从而找出问题源。
回溯法
经常用于小程序的调试。从发现问题的地方开始回溯,跟踪源代码直至找到问题源。
原因排除法
通过演绎或归纳并利用二分法来定位问题源。
先根据自己的工作经验假设一个可能的问题源,然后用数据来证明或否定该假设,直到找到问题源。
2016上综合知识历年真题(2分)
【2016年系分真题第25题:绿色】
25.遗留系统(Legacy System)的演化策略分为淘汰策略、继承策略、改造策略和集成策略。具有(36)特点的系统适合用继承策略演化。实施该策略时,应(37)。
(36)
A.技术含量低,具有较低的业务价值
B.技术含量较低,具有较高的商业价值,目前企业的业务尚紧密依赖该系统
C.技术含量较高,基本能够满足企业业务运作和决策支持的需要
D.技术含量较高,业务价值低,可能只完成某个部门(或子公司)的业务
(37)
A.保持原有系统不变,只在其基础上增加新的应用功能
B.保持原有系统功能不变,将旧的数据模型向新的数据模型的转化
C.完全兼容遗产系统的功能模型和数据模型
D.部分兼容遗产系统的功能模型和数据模型
解答:答案选择B|C。二周目绿色。重要考点需要重点关注。
淘汰策略
第三象限为低水平、低价值区,即遗留系统的技术含量较低,且具有较低的业务价值。对这种遗留系统的演化策略为淘汰,即全面重新开发新的系统以代替遗留系统。完全淘汰是一种极端性策略,一般是企业的业务产生了根本变化,遗留系统已经基本上不再适应企业运作的需要;或者是遗留系统的维护人员、维护文档资料都丢失了。经过评价,发现将遗留系统完全淘汰,开发全新的系统比改造旧系统从成本上更合算。
对遗留系统的完全淘汰是企业资源的根本浪费,系统分析师应该通过对遗留系统功能的理解和借鉴,可以帮助新系统的设计,降低新系统开发的风险。
继承策略
第二象限为低水平、高价值区,即遗留系统的技术含量较低,已经满足企业运作的功能或性能要求,但具有较高的商业价值,目前企业的业务尚紧密依赖该系统。对这种遗留系统的演化策略为继承。在开发新系统时,需要完全兼容遗留系统的功能模型和数据模型。为了保证业务的连续性,新老系统必须并行运行一段时间,再逐渐切换到新系统上运行。
改造策略
第一象限为高水平、高价值区,即遗留系统的技术含量较高,本身还有极大的生命力。系统具有较高的业务价值,基本上能够满足企业业务运作和决策支持的需要。这种系统可能建成的时间还很短,对这种遗留系统的演化策略为改造。改造包括系统功能的增强和数据模型的改造两个方面。系统功能的增强是指在原有系统的基础上增加新的应用要求,对遗留系统本身不做改变;数据模型的改造是指将遗留系统的旧的数据模型向新的数据模型的转化。
集成策略
第四象限为高水平、低价值区,即遗留系统的技术含量较高,但其业务价值较低,可能只完成某个部门(或子公司)的业务管理。这种系统在各自的局部领域里工作良好,但对于整个企业来说,存在多个这样的系统,不同的系统基于不同的平台、不同的数据模型,形成了一个个信息孤岛,对这种遗留系统的演化策略为集成。
2022上综合知识历年真题(2分)
【2022下系分真题第48题:绿色】
48.遗留系统(Legacy System)是指任何基本上不能进行修改和演化以满足新的业务需求变化的信息系统。针对遗留系统的再利用问题,通常从技术水平和业务价值两个维度进行考查,对于高水平、低价值的遗留系统,通常采用( )策略;对于高水平、高价值的遗留系统,通常采用( )策略。
A.淘汰 B.继承 C.改造 D.集成
A.淘汰 B.继承 C.改造 D.集成
解答:答案选择D|C。
双高是改造,双低是淘汰,
低水平高价值需要继承,高水平低价值则需要集成。
第二部分 案例分析历年真题
2013上案例分析历年真题(25分)
2013年系统分析师下午案例分析第五题(软件工程-系统维护)
某企业两年前自主研发的消防集中控制软件系统在市场上取得了较好的业绩,目前已成功应用到国内外众多企业用户的消防管理控制系统中。该软件系统通过不同型号消防控制器连接各种消防器件,实现集中式消防告警信息显示与控制。该软件系统的系统维护主管组织,对近期收集到的该软件系统的如下维护申请进行了讨论:
(1)将系统目前的专用报表功能改成通用报表生成功能,以适应未来用户可能提出的报表格式变化需求;
(2)在界面语言中增加德文支持,以满足新增的两个德国企业用户的使用要求;
(3)修正系统在与控制器通信时由于硬件网络故障导致的与控制器之间的连接失效,而控制器后续无法重新连接的问题;
(4)完成因某已支持型号消防控制器通信协议改变而导致的相应软件修改;
(5)增加与某新型号消防控制器的互连通信功能,以支持在后续推广过程中与该型号消防控制器进行互连;
(6)修正用户报告的由于系统从Win7平台迁移到最新发布的Win8平台而导致的部分显示功能失效的问题;
(7)修正用户报告的系统自动切换消防平面图形时部分器件位置显示错误的问题;
(8)改进系统历史消防告警记录的检索算法,以提高系统在处理大量消防报警记录时的效率;
(9)将系统目前针对某一特定数据库管理系统的数据库访问方式改成基于数据源的通用数据库访问方式,以适应用户可能提出的使用其他数据库管理系统的需求。
【问题1】
软件维护的内容通常分为正确性维护、适应性维护、完善性维护以及预防性维护四类,请用300字以内文字说明这4类软件维护内容的特点与区别。
【问题2】
请根据不同类型软件维护的特点,将上述(1)〜(9)的维护申请填入表5-1相应的类别中。
【问题3】
对于软件维护申请的处理,首先需要确定维护工作的类型,不同类型的维护工作,其处理流程往往不同,图5-1是区分不同维护类型的典型处理流程,请将表5-1中代表维护类型的序号(1)〜(4)填入图5-1的(a)〜(d)。
【问题4】
在讨论第(4)项维护工作的方案时,项目组发现与相应的消防控制器通信的子模块重用了企业之前淘汰的某款软件中实现相应功能的源代码,而现有技术人员没有参加过该代码的开发工作,并且重用的这部分代码开发不规范,其数据和代码结构设计都很差,相应的文档极不完整,维护记录也很简略。针对上述情况,项目组一致认为在原有代码基础上进行修改维护难度很大,因此决定采用软件工程的方法对该子模块进行重新设计、编码和测试,请从可行性和该模块后续可维护性两个方面简要分析采取这种方案的原因。
【问题1标准答案】
正确性维护:指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
适应性维护:指使用应用软件适应信息技术变化和管理需求变化而进行的修改。
预防性维护:为了改进应用系统的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。
完善性维护:为了扩充功能,改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
【问题2标准答案】
1.正确性维护
(3),(7)
2.适应性维护
(4),(6)
3.完善性维护
(2),(5),(8)
4.预防性维护
(1),(9)
【问题3标准答案】
a:适应性维护
b:完善性维护
c:预防性维护
d:正确性维护
适应性维护申请因为涉及软件现有功能是否能够正常使用,因此一旦确认通常也是必须进行实施的,但适应性维护首先应评价维护申请并进行优先次序的分类,然后统一进行维护实施
【问题4标准答案】
可行性:目前已经拥有使用该软件的经验,所以能够容易地确定新的需求和修改方向;从软件代码开发与维护的角度看,重新编写新代码的费用可能远远低于维护现有文档不齐全的代码的费用。且有目前可以运行的软件作为参照的话,重新开发的生产率将大大高于平均值。
可维护性:使用现代的设计概念,重新设计软件结构,能够极大地方便今后的维护;此外采用软件工程的方法进行重新设计、编码和测试,可以形成完整的软件文档,也便于后续的软件维护。
2014上案例分析历年真题(25分)
2014年系统分析师下午案例分析第四题(软件维护)
【案例四】(共25分)
阅读以下关于系统运行与维护的叙述,在答题纸上回答问题1至问题3。
【说明】
某企业经过多年的信息化建设,存在大量的应用软件系统,为了保证这些系统的运行与维护,专门组建应用系统维护部门。该部门的主要工作是保证系统的正常运行、处理问题以及扩展这些应该系统的功能,以满足企业业务功能的变化与扩展。
目前该部门存在人员流失、变更频繁,文档丢失或长期失于维护,维护成本愈来愈高等问题,具体表现为:
问题(1):随着时间和人员的变动,程序被多人修改,往往导致程序难以理解,注释混乱,流程复杂;
问题(2):随着不断修改程序和增加新的功能,模块之间的耦合关系日益复杂,维护成本不断增加。
这些问题导致新来的维护人员需要直接面对大量流程、结构复杂的源程序,维护困难,往往一次改动需要设计大量的软件模块。
为解决应用系统维护部门面对的问题,企业信息部门组织了专门的专家讨论会。各位专家一致认为,逆向工程与重构工程是目前预防性维护采用的主要技术,应该采用逆向工程的技术方法,重构相关应用系统文档,同时采用软件重构来降低软件代码的复杂性,最终降低维护成本。
【问题1】
软件的逆向工程是分析已有程序,寻求比源代码更高级的抽象表现形式。与之相关的概念包括软件重构、设计恢复、重构工程等。请说明设计恢复中常见的恢复信息的4种级别。
【问题2】
重构是对软件内部结构的一种调整,目的是不改变软件功能的前提下,提高其可理解性,降低其修改成本。请说明软件重构的三个类别,并简要说明常见的重构方法。针对题干中的问题(1)和问题(2),宜采用何种重构方法?
【问题3】
软件重构做出的修改可能导致程序运行变慢,但也更容易进行软件的性能优化和调整,请分析原因。
【问题1标准答案】
恢复信息的级别:
1)实现级
包括程序的抽象语法树,符号表等信息。
2)结构级
包括反映程序各分量之间相互依赖的关系的信息,调用图,结构图等。
3)功能级
包括反映程序功能和程序之间关系的信息。
4)领域级
包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息。
【问题2标准答案】
软件重构一般分为了三个种类:代码重构,模块重构和架构重构。
常见的重构方法有:重新组织函数,重新组织对象,重新组织数据,简化条件表达式,简化函数调用和处理概括关系。
问题1:采用代码重构,重新梳理代码流程,使代码容易理解和维护;
问题2:采用模块重构和架构重构,梳理模块之间的关系,使其更容易扩展和维护,降低模块之间的耦合度。
【问题3标准答案】
一个模块化程度好的程序可从两方面帮助性能优化。
第一,分解良好的程序,由于代码更加清晰,更容易与性能优化工具结合,分析系统性能瓶颈的具体位置。
第二,分解良好的程序,使得性能分析的粒度更细,性能调整也更加的容易。
2015上案例分析历年真题(25分)
试题四
随着信息化的发展,某银行的中心账务系统,从城市中心、省中心模式已经升级到全国中心模式。但是处理各种代收代付业务的银行中间业务系统,目前仍然采用省中心模式,由各省自行负责,使得全国中间业务管理非常困难。因此总行计划将银行中间业务系统全部升级到全国中心模式,对各省中间业务进行统一管理。
各省行采用的银行中间业务系统,均为各省自建,或者自行开发,或者自行采购,系统的硬件平台、软件系统、数据模式等均有非常大的差异。同时,对一些全国性的代收代付业务的处理方式,各省行也存在很大的差异。为统一管理,总行决定重新开发一套全国中心模式的银行中间业务系统,用来替代各省自建的中间业务系统,但要求能够支持目前各省的所有中间业务。
【问题1】
各省已建的银行中间业务系统属于遗留系统,在如何对待遗留系统上,设计组存在两种不同的策略:淘汰策略和继承策略。请简要解释这两种策略,并说明新开发的银行中间业务系统适合采用哪种策略及其原因。
【问题2】
遗留系统和新系统之间的转换策略常见的有直接转换、并行转换和分段转换。请简要说明达三种转换策略的含义;并请结合银行中间业务的特点,说明该银行新开发的中间业务系统上线时适合采用哪种策略?为什么?
【问题3】
银行中间业务系统中,最为核心的是业务数据。因此在新旧系统切换时存在一项重要的工作:数据迁移。考虑到各省中间业务系统的巨大差异,因此需要做好数据迁移前的准备工作。请简要说明数据迁移准备工作的内容。
【问题1标准答案】
1)淘汰策略
遗留系统的技术含量低,具有较低的业务价值,因此需要全面重新开发新系统以替代遗留系统;
一般是企业的业务发生了根本变化,遗留系统已经基本上不再适应企业运作的需要;
或者是遗留系统的维护人员流失,维护文档资料丢失;
评价后发现,开发新系统比维护与改造旧系统从成本上更加经济合算;
2)继承策略
遗留系统技术含量低,已经满足企业运作的功能或性能要求,但有较高的业务价值;
目前企业的业务尚需依赖该遗留系统。因此开发系统替代遗留系统时,需要完全兼容遗留系统的功能模型和数据模型。
适合采用的是继承策略。
因为全国中心需要管理银行的全国中间业务,而目前的省中心系统从技术上不满足全国中心的需求,需要重新开发新的银行中间业务系统;
同时,新系统必须支持当前各省的所有中间业务,因此必须完全兼容各省的功能模型和数据模型。
【问题2标准答案】
1)直接转换
就是在原有系统停止运行的某一时刻,新系统立即投入运行,中间没有过渡阶段。
2)并行转换
是新系统和现有系统并行工作一段时间,经过这段时间的试运行之后,再用新系统正式替换下现有系统。
3)分段转换策略
也称为逐步转换策略。这种转换方式是直接转换方式和并行转换方式的结合,采取分期分批逐步转换。
该银行适合采用分段转换策略。一般比较大的系统采用这种方式较为适宜,它能保证平稳运行,费用也不太高;
或者现有系统比较稳定,能够适应自身业务发展需要,或新旧系统转换风险很大,也可以采用分段转换策略。
【问题3标准答案】
待迁移数据源的详细说明,包括数据的存放方式,数据量和数据的时间跨度。
建立新旧系统数据库的数据字典,对现有系统的历史数据进行质量分析,以及新旧系统数据结构的差异分析
新旧系统代码数据的差异分析
建立新旧系统数据库表的映射关系,对无法映射字段的处理方法。
开发或购买,部署ETL工具
编写数据转换测试计划和校验程序
制定数据转换的应急措施
第三部分 论文写作历年真题
2010上论文写作历年真题(75分)
试题一 论软件维护及软件可维护性
软件维护指软件交付使用后,为了改正错误或满足新的需要而修改软件的过程。软件维护活动花费了整个软件生命期成本的50%〜90%,要降低维护成本,需要提高软件的可维护性。软件可维护性(SoftwareMaintainability)是指软件能够被理解、校正、增强功能及适应变化的容易程度。提高软件的可维护性是软件开发阶段的关键目标之一。
请围绕“软件维护及软件可维护性”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.请给出常见的三种软件维护的类型并分别对其特点进行论述。说明影响软件可维护性的主要因素并详细论述提高软件可维护性的主要方法。
3.具体阐述你参与管理和开发的项目中所进行的软件维护活动和所采取的提高软件可维护性的方法,说明具体实施的过程以及实际应用的效果。
一.软件维护的类型
软件维护分为正确性维护,适应性维护,完善型维护和预防性维护四种。
1.正确性维护
在软件投入运行后,可能会暴露一部分在测试阶段没有发现的错误,为改正这些错误而对软件进行修改就是正确性或者叫做纠正性维护。
2.适应性维护
由于软件运行的外部环境(软硬件环境)和数据环境等的变化而修改软件使之适应这些变化,就是适应性维护。
3.预防性维护
就是采用先进的软件工程方法对需要维护的软件或某部分软件重新进行设计,编码和测试,以提高软件的可维护性和可靠性,为以后进一步改进软件打下基础。
4.完善性维护
用户的需求是经常发生变化的,在软件使用过程中,用户会对软件提出新的功能和性能要求,为了满足这些要求而对软件进行的修改,使之功能和性能得到完善。
二. 影响软件可维护性因素
可维护性是软件开发阶段的关键目标。影响软件可维护性的因素较多。
设计,编码及测试中的疏忽和低劣的软件配置;
缺少文档等都将对软件的可维护性产生不良影响。软件的维护性可以用下面的几个质量属性来衡量:
可理解性,可测试性,可修改性,可靠性,可移植性,可使用性和效率。对于不同的维护,这七种特征的侧重点也不相同。
三.提高软件可维护性的方法
1)建立明确的软件质量目标
2)使用先进的软件开发技术和工具
使用先进的软件开发技术能够大大提高软件质量,减少软件开发成本。
3)建立明确的质量保证
质量保证不仅使用在软件开发的各个阶段当中得到广泛的应用,而且在软件维护中也是一个非常重要的工具。为保证软件可维护性,以下四类检查是非常有用的:在检查点进行检查,验收检查,周期性的维护检查和对软件包的检查。
4)选择容易维护的编程语言
低级语言很难掌握,很难理解,因此也不便于维护。一般来说,使用高级语言更容易理解和维护。
5)改进软件的文档
软件文档是对软件功能,各个组成部分之间的关系,程序设计策略,程序实现过程的历史数据等的说明和补充。软件文档对提高程序的可阅读性有重要的作用,从而会提高软件的可维护性。
2020上论文写作历年真题(75分)
论遗留系统演化策略及其应用
遗留系统是指任何基本上不能进行修改和演化以满足新的变化了的业务需求的信息系统。在企业信息系统升级改造过程中,如何处理和利用遗留系统,成为新系统建设中的重要问题,而处理恰当与否,直接关系到新系统的成败和开发效率。遗留系统的演化方式有多种,究竟采用哪些策略来处理遗留系统,需要根据对遗留系统的评价结果来确定。
请围绕“论遗留系统演化策略及其应用”论题,依次从以下三个方面进行论述:
1.概要叙述你参与管理和开发的软件项目,以及你在其中所担任的主要工作。
2.详细论述遗留系统评价的主要活动,论述常见的演化策略。
3.结合你具体参与管理和开发的实际项目,说明如何进行遗留系统评价并选择合适的演化策略,请说明具体实施过程以及应用效果。
【标准答案】
对遗留系统评价的目的是获得对遗留系统更好的理解,是遗留系统演化的基础。主要评价方法包括度量系统技术水准、商业价值和与之关联的企业特征,其结果作为选择处理策略的基础。评价方法由一系列活动组成:
1、启动评价:评价准备,数据搜集过程。
2、业务价值评价:主要是判断遗留系统对企业的重要程度。
3、外部环境评价:包括硬件、支撑软件和企业IT基础设施的统一体。
4、应用软件评价:遗留系统本身的特征评价。
5、分析评价结果:按照业务评价分值和技术水平分值的高低组合,将评价结果分为四种。
根据四种评价结果选择不同的遗留系统演化策略。
1、淘汰策略:评价结果为业务价值低、技术水平低的遗留系统。
2、继承策略:评价结果为业务价值高、技术水平低的遗留系统。
3、改造策略:评价结果为业务价值高、技术水平高的遗留系统。
4、集成策略:评价结果为业务价值低、技术水平高的遗留系统