更多“重构主要的用意是提高代码的可读性或改变代码内部结构与设计,使其更容易维护。”相关问题
  • 第1题:

    系统设计的主要目标是()。

    A、经济性

    B、提高系统的可靠性

    C、提高软件的可维护性

    D、减少源程序的代码行

    E、提高系统的运行效率


    参考答案:BCE

  • 第2题:

    数据维护的主要内容有()。

    A.数据库的重建和重构

    B.代码的增加、修改及设置新的代码

    C.数据库的安全性控制与完整性控制

    D.数据库的备份、转储和恢复


    正确答案:ACD

  • 第3题:

    与汇编程序相比,C语言程序的优点包括( )。

    A、更容易移植

    B、更容易阅读

    C、目标代码质量较高

    D、能够进行位操作


    参考答案ABC

  • 第4题:

    逆向工程从源代码或目标代码中提取设计信息,通常在原软件生命周期的(34)阶段进行。A.需求分析S

    逆向工程从源代码或目标代码中提取设计信息,通常在原软件生命周期的(34)阶段进行。

    A.需求分析

    B.软件设计

    C.软件设计

    D.软件维护


    正确答案:A
    逆向工程产品设计可以认为是一个从产品到设计的过程。简单地说,逆向工程产品设计就是根据已经存在的产品,反向推出产品设计数据(包括各类设计图或数据模型)的过程。使用该过程进行开发时,一般会先采用逆向工程先从代码分析出设计,再从设计分析出需求,此时加入新的需求,然后走正向工程的路线,形成新的系统。从这个过程可以看出,逆向工程是在需求分析阶段进行的。

  • 第5题:

    修改现有软件系统的设计文档和代码以增强可读性,这种行为属于( )维护。

    A.正确性 B.适应性 C.完善性D.预防性


    正确答案:C

  • 第6题:

    修改现有软件系统的设计文档和代码以增强可读性,这种行为属于(50)维护。

    A.正确性
    B.适应性
    C.完善性
    D.预防性

    答案:C
    解析:
    本题考查维护的基础知识。
    系统维护类型有正确性维护、适应性维护、完善性维护、预防性维护四类。
    ①正确性维护(改正性维护)是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
    ②适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。
    ③完善性维护是为扩展功能和改善性能而进行的修改。
    ④预防性维护是改变系统的某些方面,以预防失效的发生。
    修改现有软件系统的设计文档和代码以增强吋读性,事实上是在提高软件的质量。因此属于完善性维护。

  • 第7题:

    阅读以下关于系统运行与维护的叙述,在答题纸上回答问题1至问题3。

    【说明】

    某企业经过多年的信息化建设,存在大量的应用软件系统,为了保证这些系统的运行与维护,专门组建应用系统维护部门。该部门的主要工作是保证系统的正常运行、处理问题以及扩展这些应该系统的功能,以满足企业业务功能的变化与扩展。

    目前该部门存在人员流失、变更频繁,文档丢失或长期失于维护,维护成本愈来愈高等问题,具体表现为:

    问题(1):随着时间和人员的变动,程序被多人修改,往往导致程序难以理解,注释混乱,流程复杂;

    问题(2):随着不断修改程序和增加新的功能,模块之间的耦合关系日益复杂,维护成本不断增加。

    这些问题导致新来的维护人员需要直接面对大量流程、结构复杂的源程序,维护困难,往往一次改动需要设计大量的软件模块。

    为解决应用系统维护部门面对的问题,企业信息部门组织了专门的专家讨论会。各位专家一致认为,逆向工程与重构工程是目前预防性维护采用的主要技术,应该采用逆向工程的技术方法,重构相关应用系统文档,同时采用软件重构来降低软件代码的复杂性,最终降低维护成本。



    【问题1】

    软件的逆向工程是分析已有程序,寻求比源代码更高级的抽象表现形式。与之相关的概念包括软件重构、设计恢复、重构工程等。请说明设计恢复中常见的恢复信息的4种级别。

    【问题2】

    重构是对软件内部结构的一种调整,目的是不改变软件功能的前提下,提高其可理解性,降低其修改成本。请说明软件重构的三个类别,并简要说明常见的重构方法。针对题干中的问题(1)和问题(2),宜采用何种重构方法?

    【问题3】

    软件重构做出的修改可能导致程序运行变慢,但也更容易进行软件的性能优化和调整,请分析原因。


    答案:
    解析:
    【问题1】
    答:恢复信息的级别:

    (1)实现级:包括程序的抽象语法树、符号表等信息;

    (2)结构级:包括反映程序分量之间相互依赖的关系的信息,调用图、结构图等;

    (3)功能级:包括反映程序功能与程序之间关系的信息;

    (4)领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息。

    【问题2】

    答:软件重构一般分为三类:

    (1)代码重构;(2)模块重构;(3)架构重构。

    常见的重构方法有:重新组织函数、重新组织对象、重新组织数据、简化条件表达式、简化函数调用和处理概括关系。

    针对问题(1),采用代码重构,重新梳理代码流程,使代码容易理解和维护;

    针对问题(2),采用模块東构和架构重构,梳理模块之间的关系,使其更容易扩展和维护,降低模块之间的耦合度。

    【问题3】

    答:一个模块化程度好的程序可从两方面帮助性能优化。

    (1)分解良好的程序,使得性能分析的粒度更细,性能调整更加容易;

    (2)分解良好的程序,由于代码更加淸晰,更容易与性能优化工具结合,分析系统性能瓶颈的具体位置。

  • 第8题:

    在PHP的模板中使用流程替代语法,大大增强了程序的可读性及代码的后期维护。


    正确答案:正确

  • 第9题:

    逆向工程(Reverse Engineering)通常用在软件生命周期的()阶段,它是从源代码或目标代码中提取设计信息。

    • A、需求分析
    • B、软件设计
    • C、软件测试
    • D、软件维护

    正确答案:D

  • 第10题:

    逆向工程通常用在软件生命周期的()阶段,它是从源代码或目标代码中提取设计信息。

    • A、需求分析
    • B、软件设计
    • C、软件测试
    • D、软件维护

    正确答案:D

  • 第11题:

    下面关于流程替代语法说法错误的是()。

    • A、增强程序的可读性。
    • B、提高代码后期维护的效率。
    • C、避免了大量的HTML代码和PHP代码混合编译,分不清流程语句开始和结束的位置。
    • D、流程替代语法就是去掉if语句等的花括号,在开始和结束位置添加start和end语句。

    正确答案:D

  • 第12题:

    单选题
    下面关于流程替代语法说法错误的是()。
    A

    增强程序的可读性。

    B

    提高代码后期维护的效率。

    C

    避免了大量的HTML代码和PHP代码混合编译,分不清流程语句开始和结束的位置。

    D

    流程替代语法就是去掉if语句等的花括号,在开始和结束位置添加start和end语句。


    正确答案: C
    解析: 暂无解析

  • 第13题:

    使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠 性。()

    此题为判断题(对,错)。


    参考答案:正确

  • 第14题:

    HTML5提供了一些专门用于实现页面架构的元素,以下说法不正确的是( )

    A.在页面布局时,提高了代码可读性

    B.为页面协同开发、维护优化等工作带来了便利

    C.浏览器的兼容程度不一,页面兼容性降低

    D.进一步实现了页面结构与页面设计代码的相对分离


    参考答案:C

  • 第15题:

    关于维护软件所需的成本,以下叙述正确的是(18) 。

    A.纠正外部和内部设计错误比纠正源代码错误需要更大的成本

    B.与需求定义相比,源代码的文字量大得多,所以源代码的维护成本更高

    C.用户文档需要经常更新,其维护成本超过了纠正设计错误的成本

    D.需求定义的错误会在设计时被发现并纠正,因此需求定义纠错的成本小于源代码纠错的成本


    正确答案:A
    解析:见公共试题Ⅱ(16)。

  • 第16题:

    关于维护软件所需的成本,以下叙述中正确的是______。

    A.纠正外部和内部设计错误比纠正源代码错误需要更人的成本

    B.与需求定义相比,源代码的文字量大得多,所以源代码的维护成本更高

    C.用户文档需要经常更新,其维护成本超过了纠正设计错误的成本

    D.需求定义的错误会在设计时被发现并纠正,因此需求定义纠错的成本小于源代码纠错的成本


    正确答案:A
    解析:软件维护是指在软件运行或维护阶段对软件产品所进行的修改。根据软件维护的不同原因,软件维护可以分成三种类型,它们是改正性维护、适应性维护和完善性维护。改正性维护的目的在于纠正在开发期间未能发现的错误。由于软件测试的不彻底性,任何大型软件在交付使用后都会发现一些潜藏的错误,对它们进行的诊断和改正就称为改正性维护。改正性维护约占总维护的20%。完善性维护指的是任何软件,无论是应用软件还是系统软件,在使用期间都要不断改善,加强产品的功能和性能,以满足用户日益增长的需求,提高自己产品的市场竞争力。刚投入使用的是第l版,以后就可能不断升级为第2版、第3版等。在整个维护工作量中,完善性维护所占比重最大,约占50%~60%。适应性维护是指软件为适应运行环境的变化而进行的一种维护,如硬件或支撑软件(如操作系统升级)改变引起的变化,将软件移植到其他的运行平台上等,这类维护大约占总维护量的25%。在软件交付使用的初期,改正性维护的工作量较大。随着错误发现率不断降低,软件便进入了正常使用期。在长期的软件使用过程中,由于计算机新技术的出现和用户新需求的提出,适应性维护和完善性维护的工作量逐步增加。在这种维护过程中,又会引入新的错误,从而加重了维护的工作量。在整个软件维护阶段所花费的全部工作量中,完善性维护占了一半以上的工作量,这说明较大部分维护工作是改变和加强软件,而不是纠错。同时,软件维护技术不像开发技术那样成熟和规范,自然消耗的工作量就比较多,其工作量占整个生存周期工作量的70%以上。

  • 第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题:

    优秀代码的特点不包括( )。

    A.设计复杂
    B.容易修改
    C.运行效率高
    D.易于维护

    答案:A
    解析:
    设计应简单清晰明了,提高可理解性、可维护性、可测试性等,而不是设计复杂。

  • 第19题:

    关于代码优化下列表述不对的是()

    • A、JavaScript程序代码编写出来后,主要是交给浏览器去运行
    • B、尽可能使用全局变量,可以使代码简单
    • C、书写风格应遵循“标识符短而含义清晰”、“代码缩进对齐”、“尽可能注释”等原则
    • D、在机器上运行的代码总是希望其速度越快越好,阅读维护时其可读性可理解性最好

    正确答案:B

  • 第20题:

    代码维护中如果系统的应用范围或应用环境发生了变化,就有必要()

    • A、订正
    • B、重新设计
    • C、添加代码
    • D、删除代码

    正确答案:A,B,C,D

  • 第21题:

    关于代码审核的优点,以下哪些说法是正确的?()

    • A、代码审核有助于提高代码的质量
    • B、为了降低更改费用,代码审核一定在到达开发阶段里程碑时才能进行,而不能在中间里程碑时进行
    • C、审核之中可由一个专门编程标准与风险审查,有利于遍出更规范的代码
    • D、代码审核可以节约大量测试和维护时间,代码审核实际是一次内部交流,有利于疑难、悬而未决的问题早解决,减少不必要的延期

    正确答案:A,C,D

  • 第22题:

    下面有关MVC设计模式说法不正确的是()

    • A、按MVC设计模式,一个模型对应多个视图,可以减少代码的复制即代码的维护量
    • B、模型返回的数据与显示逻辑分离
    • C、控制层可以把不同的模型和不同的视图组合在一起,完成不同的请求。
    • D、MVC更符合软件工程化管理的精神,并能提高软件运行速度。

    正确答案:D

  • 第23题:

    多选题
    代码维护中如果系统的应用范围或应用环境发生了变化,就有必要()
    A

    订正

    B

    重新设计

    C

    添加代码

    D

    删除代码


    正确答案: A,B,C,D
    解析: 暂无解析

  • 第24题:

    单选题
    白盒测试是()
    A

    根据程序内部结构和逻辑来设计测试例子

    B

    在完全不考虑程序的内部结构和特性的情况下,测试程序的外部特性

    C

    检查代码逻辑表达是否正确和完整,检查代码结构是否合理等

    D

    为了检测在安装过程中是否有错误、是否容易操作等


    正确答案: B
    解析: 暂无解析