重构主要的用意是提高代码的可读性或改变代码内部结构与设计,使其更容易维护。
第1题:
系统设计的主要目标是()。
A、经济性
B、提高系统的可靠性
C、提高软件的可维护性
D、减少源程序的代码行
E、提高系统的运行效率
第2题:
A.数据库的重建和重构
B.代码的增加、修改及设置新的代码
C.数据库的安全性控制与完整性控制
D.数据库的备份、转储和恢复
第3题:
A、更容易移植
B、更容易阅读
C、目标代码质量较高
D、能够进行位操作
第4题:
逆向工程从源代码或目标代码中提取设计信息,通常在原软件生命周期的(34)阶段进行。
A.需求分析
B.软件设计
C.软件设计
D.软件维护
第5题:
修改现有软件系统的设计文档和代码以增强可读性,这种行为属于( )维护。
A.正确性 B.适应性 C.完善性D.预防性
第6题:
第7题:
第8题:
在PHP的模板中使用流程替代语法,大大增强了程序的可读性及代码的后期维护。
第9题:
逆向工程(Reverse Engineering)通常用在软件生命周期的()阶段,它是从源代码或目标代码中提取设计信息。
第10题:
逆向工程通常用在软件生命周期的()阶段,它是从源代码或目标代码中提取设计信息。
第11题:
下面关于流程替代语法说法错误的是()。
第12题:
增强程序的可读性。
提高代码后期维护的效率。
避免了大量的HTML代码和PHP代码混合编译,分不清流程语句开始和结束的位置。
流程替代语法就是去掉if语句等的花括号,在开始和结束位置添加start和end语句。
第13题:
此题为判断题(对,错)。
第14题:
A.在页面布局时,提高了代码可读性
B.为页面协同开发、维护优化等工作带来了便利
C.浏览器的兼容程度不一,页面兼容性降低
D.进一步实现了页面结构与页面设计代码的相对分离
第15题:
关于维护软件所需的成本,以下叙述正确的是(18) 。
A.纠正外部和内部设计错误比纠正源代码错误需要更大的成本
B.与需求定义相比,源代码的文字量大得多,所以源代码的维护成本更高
C.用户文档需要经常更新,其维护成本超过了纠正设计错误的成本
D.需求定义的错误会在设计时被发现并纠正,因此需求定义纠错的成本小于源代码纠错的成本
第16题:
关于维护软件所需的成本,以下叙述中正确的是______。
A.纠正外部和内部设计错误比纠正源代码错误需要更人的成本
B.与需求定义相比,源代码的文字量大得多,所以源代码的维护成本更高
C.用户文档需要经常更新,其维护成本超过了纠正设计错误的成本
D.需求定义的错误会在设计时被发现并纠正,因此需求定义纠错的成本小于源代码纠错的成本
第17题:
某企业经过多年的信息化建设,存在大量的应用软件系统,为了保证这些系统的运行与维护,专门组建应用系统维护部门。该部门的主要工作是保证系统的正常运行、处理问题以及扩展这些应该系统的功能,以满足企业业务功能的变化与扩展。
目前该部门存在人员流失、变更频繁,文档丢失或长期失于维护,维护成本愈来愈高等问题,具体表现为:
问题(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】
为了使软件更容易理解,同时又需要考虑到各种兼容性,在重构时,可能需要在代码中增加冗余的判断、冗余的代码或结构;也可能需要修改已有的数据库结构和索引等,导致程序运行变慢。
但从长远来看,由于重构以后的软件结构更加清晰,代码复杂性更低,更易于理解,在性能调优时更容易分析瓶颈之所在,然后加以解决,因此,软件重构也更易容进行软件的性能优化和调优。
第18题:
第19题:
关于代码优化下列表述不对的是()
第20题:
代码维护中如果系统的应用范围或应用环境发生了变化,就有必要()
第21题:
关于代码审核的优点,以下哪些说法是正确的?()
第22题:
下面有关MVC设计模式说法不正确的是()
第23题:
订正
重新设计
添加代码
删除代码
第24题:
根据程序内部结构和逻辑来设计测试例子
在完全不考虑程序的内部结构和特性的情况下,测试程序的外部特性
检查代码逻辑表达是否正确和完整,检查代码结构是否合理等
为了检测在安装过程中是否有错误、是否容易操作等