第1题:
在软件生存周期中,将某种形式表示的软件转换成更高抽象形式表示的软件的活动属于______。
A.逆向工程
B.代码重构
C.程序结构重构
D.数据结构重构
第2题:
此题为判断题(对,错)。
第3题:
A、对实施新发布的软件应用程序的控制
B、限制接触程序或数据的控制
C、程序变更控制
D、针对限制接触或监督使用系统应用程序的系统软件的控制,使用这些系统应用程序可能史改财务数据或记录而不留下审计轨迹
第4题:
某企业经过多年的信息化建设,存在大量的应用软件系统,为了保证这些系统的运行与维护,专门组建应用系统维护部门。该部门的主要工作是保证系统的正常运行、处理问题以及扩展这些应该系统的功能,以满足企业业务功能的变化与扩展。
目前该部门存在人员流失、变更频繁,文档丢失或长期失于维护,维护成本愈来愈高等问题,具体表现为:
问题(1):随着时间和人员的变动,程序被多人修改,往往导致程序难以理解,注释混乱,流程复杂;
问题(2):随着不断修改程序和增加新的功能,模块之间的耦合关系日益复杂,维护成本不断增加。
这些问题导致新来的维护人员需要直接面对大量流程、结构复杂的源程序,维护困难,往往一次改动需要设计大量的软件模块。
为解决应用系统维护部门面对的问题,企业信息部门组织了专门的专家讨论会。各位专家一致认为,逆向工程与重构工程是目前预防性维护采用的主要技术,应该采用逆向工程的技术方法,重构相关应用系统文档,同时采用软件重构来降低软件代码的复杂性,最终降低维护成本。
【问题1】(8分) 软件的逆向工程是分析已有程序,寻求比源代码更高级的抽象表现形式。与之相关的概念包括软件重构、设计恢复、重构工程等。请说明设计恢复中常见的恢复信息的4种级别。 【问题2】(11分) 重构是对软件内部结构的一种调整,目的是不改变软件功能的前提下,提高其可理解性,降低其修改成本。请说明软件重构的三个类别,并简要说明常见的重构方法。针对题干中的问题(1)和问题(2),宜采用何种重构方法? 【问题3】(6分) 软件重构做出的修改可能导致程序运行变慢,但也更容易进行软件的性能优化和调整,请分析原因。
【问题1】
(1)实现级:过程的设计模型。
(2)结构级:程序和数据结构信息。
(3)功能级:对象模型、数据和控制流模型。
(4)领域级:UML状态图和部署图。
【问题2】
软件重构的三个类别:
代码重构、设计重构、架构重构。
常见的重构方法:
(1)提取方法(Extract method)
(2)用委托来代替继承(Replace Inheritance witch Delegation)
(3)用子类代替型别码(Replace Type with Subclasses)
(4)用多态来代替条件判断(Replace conditional with polymorphism)
(5)模板函数
(6)提取类
(7)提取接口
问题(1)可采用提取方法的重构方法解决,问题(2)可采用提取接口的方法解决。
【问题3】
为了使软件更容易理解,同时又需要考虑到各种兼容性,在重构时,可能需要在代码中增加冗余的判断、冗余的代码或结构;也可能需要修改已有的数据库结构和索引等,导致程序运行变慢。
但从长远来看,由于重构以后的软件结构更加清晰,代码复杂性更低,更易于理解,在性能调优时更容易分析瓶颈之所在,然后加以解决,因此,软件重构也更易容进行软件的性能优化和调优。
第5题:
在操作系统中,利用SPOOLINC技术可以实现的功能是(260)。
A.不同进程同时运行
B.程序的执行与打印同时进行
C.不同的系统软件同时运行
D.应用程序和系统软件同时运行
第6题:
此题为判断题(对,错)。
第7题:
主要是在分布式异构环境下建立应用系统框架和对象构件,在应用系统框架的支撑下,开发者可以将软件功能包装为更易管理和使用的对象,这些对象可以跨越不同的软硬件平台进行互操作。
A.分布式异构系统
B.远程调用技术
C.对象工厂
D.分布式对象技术
第8题:
● 在软件生存周期中,将某种形式表示的软件转换成更高抽象形式表示的软件的活动属于(11) 。
(11)
A. 逆向工程
B. 代码重构
C. 程序结构重构
D. 数据结构重构
第9题:
事实上一个政府部门通常已经有了许多应用软件系统,通常需要保护现有资源,让新的系统能够和现有的系统应用交互整合。用150字分析该系统应采用什么技术使系统的开发有较低的成本和工作量。
第10题:
A.系统的用户和组信息
B.系统的共享信息
C.系统的版本信息
D.系统的应用服务和软件信息