软件重构与正向工程的区别是什么?

题目

软件重构与正向工程的区别是什么?


相似考题

3.某企业经过多年的信息化建设,存在大量的应用软件系统,为了保证这些系统的运行与维护,专门组建应用系统维护部门。该部门的主要工作是保证系统的正常运行、处理问题以及扩展这些应该系统的功能,以满足企业业务功能的变化与扩展。目前该部门存在人员流失、变更频繁,文档丢失或长期失于维护,维护成本愈来愈高等问题,具体表现为:问题(1):随着时间和人员的变动,程序被多人修改,往往导致程序难以理解,注释混乱,流程复杂;问题(2):随着不断修改程序和增加新的功能,模块之间的耦合关系日益复杂,维护成本不断增加。这些问题导致新来的维护人员需要直接面对大量流程、结构复杂的源程序,维护困难,往往一次改动需要设计大量的软件模块。为解决应用系统维护部门面对的问题,企业信息部门组织了专门的专家讨论会。各位专家一致认为,逆向工程与重构工程是目前预防性维护采用的主要技术,应该采用逆向工程的技术方法,重构相关应用系统文档,同时采用软件重构来降低软件代码的复杂性,最终降低维护成本。【问题1】(8分) 软件的逆向工程是分析已有程序,寻求比源代码更高级的抽象表现形式。与之相关的概念包括软件重构、设计恢复、重构工程等。请说明设计恢复中常见的恢复信息的4种级别。 【问题2】(11分) 重构是对软件内部结构的一种调整,目的是不改变软件功能的前提下,提高其可理解性,降低其修改成本。请说明软件重构的三个类别,并简要说明常见的重构方法。针对题干中的问题(1)和问题(2),宜采用何种重构方法? 【问题3】(6分) 软件重构做出的修改可能导致程序运行变慢,但也更容易进行软件的性能优化和调整,请分析原因。

更多“软件重构与正向工程的区别是什么?”相关问题
  • 第1题:

    正向解析和反向解析的区别是什么?


    正确答案:正向解析是由域名解析到IP地址而反向解析是由IP地址解析为域名。
    正向解析是由域名解析到IP地址,而反向解析是由IP地址解析为域名。 解析:正向解析是指将域名转换为IP的过程;反向解析是指将IP转换为域名的过程。我们在配置DNS时需要正向解析也需要反向解析,所谓的域名解析其实就是将域名正向解析到IP地址的过程。

  • 第2题:

    生物材料区别于其它材料的一个显著特征是什么?简述生物材料与组织工程、再生医学的联系与区别。


    正确答案: 生物材料用于人体组织和器官的诊断、修复或增进其功能的一类高技术材料,即用于取代、修复活组织的天然或人造材料,其作用药物不可替代。生物材料能执行、增进或替换因疾病、损伤等失去的某种功能,而不能恢复缺陷部位。
    生物医用材料最基本的要求是它必须与生物系统直接结合,生物医用材料都必须具备生物学性能,即生物相容性,尽量将受体对植入器械的异物反应降到最低,这是生物医用材料区别于其它功能材料的最重要的特征,并且要求这种材料不会因与生物系统直接结合而降低其效能与使用寿命。
    再生医学是利用人类的自然治愈能力,使受到巨大创伤的机体组织或器官获得自己再生能力为目的的医学,主要包括干细胞与克隆技术、组织工程、组织器官代用品、异种器官移植。新的生物材料具有生物活性和降解两种性能,在植入体内后可促进机体的再生能力,从而达到治疗效果。干细胞具有很强的分化能力,再生性强;同时由于处于低分化状态,它还具有分化成多种细胞、组织和器官的能力。再生医学,利用机体细胞重新制作损伤的组织、器官,使其恢复自然状态。即通过干细胞移植,将胚胎干细胞或多能干细胞移植于体内损伤部位从而达到组织器官重建和再生的目的。新一代的生物材料将生物活性材料与可降解材料这两个独立的概念结合起来,在可降解材料上进行分子修饰,引起细胞整合素的相互作用,诱导细胞的增殖、分化,以及细胞外基质的合成与组装,从而启动机体的再生系统,属于再生医学的范畴。
    组织工程是应用生命科学与工程的原理和方法构建一个生物装置,来维护、增进人体细胞和组织的生长,以恢复受损组织或器官的功能。组织工程的核心就是建立细胞与生物材料的三维空间复合体,即具有生命力的活体组织,用以对病损组织进行形态结构和功能的重建并达到永久性替代。组织工程的基本原理和方法是将体外培养扩增的正常组织细胞吸附于一种具有优良细胞相容性并可以被机体降解吸收的生物材料上面形成复合物,然后将细胞(生物材料复合物植入人体组织、器官的病损部位,在作为细胞生长支架的生物材料逐渐被机体降解吸收的同时细胞不断增殖、分化,形成新的并且其形态、功能方面与相应组织、器官一致的组织,从而达到修复创伤和重建功能的目的。

  • 第3题:

    什么是软件工程?软件工程面临的问题是什么?


    正确答案:软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。
    软件工程面临的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。

  • 第4题:

    在重构和正向工程之间存在的细微不同是什么?


    正确答案:重构是指在统一抽象级别上转换系统的描述形式;正向工程过程应用软件工程的原理、概念、技术和方法来重新开发某个现有的应用系统。从概念可以看出,重构是从一个系统环境转换到另一个系统环境,而正向工程则是重新开发,从零开始,没有一定基础的。

  • 第5题:

    CASE工具、软件开发环境SDE、软件工程环境SEE三者之间有何联系与区别?


    正确答案: C.ASE(Computer Aided Software Engineering)是一组工具和方法的集合,一般提供给个人使用,可以辅助软件开发生命周期各阶段进行软件开发。它在软件开发/维护过程中提供计算机辅助支持和工程化方法,CASE技术分为两类,一类是支持软件开发过程本身的技术,另一类是支持软件开发过程管理的技术。
    软件开发环境SDE(Software Development Environment)指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。
    软件配置管理工具、面向行业领域开发的业务基础平台,都是软件开发环境的例子。软件工程环境SEE(Software Engineering Environment)一般提供给团队使用,它是以软件工程为依据,支持典型软件生产的系统。SEE具有以下特点:
    (1)强调支持软件生产的全过程。
    (2)强调大型软件的工业化生产。
    (3)以集成和剪裁作为主要技术路径,实现软件工业化生产的目标。
    (4)标准化。软件生产走向工业化需要建立相应的工业标准。 软件工程环境的例子有北大青鸟系统,Rational Rose等。
    三者的相同点是:都是软件过程的支持工具,其目的都是为了加快软件开发效率,提高软件开发质量。
    三者的不同点是:它们的功能强弱、使用范围、使用背景不尽相同。

  • 第6题:

    软件测试的基本任务是什么?测试与纠错有什么区别?


    正确答案: 软件测试的基本任务是通过在计算机上执行程序,暴露程序中潜在的错误。
    测试和纠错目的和任务都不相同,测试是为了发现程序的错误,纠错是为了定位和纠正错误,从而消除软件故障,保证程序的可靠运行。

  • 第7题:

    工程量清单计价与定额计价的区别是什么?


    正确答案:(1)计价模式不同
    (2)反映的成本价不同
    (3)风险承担人不同
    (4)项目名称划分不同
    (5)工程量计算规则在工程数量上的不同
    (6)合同价形成过程不同

  • 第8题:

    需求分析与软件设计二个阶段任务的主要区别是什么?


    正确答案: 需求分析定义软件的用户需求,即定义待开发软件能做什么。
    软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。

  • 第9题:

    问答题
    软件重构与正向工程的区别是什么?

    正确答案: 在这里,软件重构代表着软件再工程,正向工程代表着传统的软件开发。正向工程是从新的系统描述开始,通过设计和实现得到一个新的系统;软件重构是从现有系统开始,通过对该系统的理解和转换,最终得到一个再工程的系统。通常,软件重构不会改变系统的总体结构。
    解析: 暂无解析

  • 第10题:

    问答题
    简述正向演替与逆向演替的区别。

    正确答案: 正向演替:结构的复杂化;以低级小型植物为主朝着高级大型植物发展;物种多样性有增加趋势;生活型多样化;窄生态幅种在增加;种群趋向中生化;群落生物趋向增加;土地生产力利用趋于增加;土壤剖面的发育成熟;种群生境的优化。
    逆向演替:结构的简单位;从大型植物为主趋向于小型植物占优势;物种多样性有减少趋势;生活型的简化;生态幅宽的种增加;群落趋向于旱生化或湿生化;群落生物量趋向减少;土地生产力利用趋于减少;土壤剖面弱化;种落生境的恶化。
    解析: 暂无解析

  • 第11题:

    问答题
    CASE工具、软件开发环境SDE、软件工程环境SEE三者之间有何联系与区别?

    正确答案: C.ASE(Computer Aided Software Engineering)是一组工具和方法的集合,一般提供给个人使用,可以辅助软件开发生命周期各阶段进行软件开发。它在软件开发/维护过程中提供计算机辅助支持和工程化方法,CASE技术分为两类,一类是支持软件开发过程本身的技术,另一类是支持软件开发过程管理的技术。
    软件开发环境SDE(Software Development Environment)指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。
    软件配置管理工具、面向行业领域开发的业务基础平台,都是软件开发环境的例子。软件工程环境SEE(Software Engineering Environment)一般提供给团队使用,它是以软件工程为依据,支持典型软件生产的系统。SEE具有以下特点:
    (1)强调支持软件生产的全过程。
    (2)强调大型软件的工业化生产。
    (3)以集成和剪裁作为主要技术路径,实现软件工业化生产的目标。
    (4)标准化。软件生产走向工业化需要建立相应的工业标准。 软件工程环境的例子有北大青鸟系统,Rational Rose等。
    三者的相同点是:都是软件过程的支持工具,其目的都是为了加快软件开发效率,提高软件开发质量。
    三者的不同点是:它们的功能强弱、使用范围、使用背景不尽相同。
    解析: 暂无解析

  • 第12题:

    问答题
    光纤通信系统与工程中,系统设计与工程设计的任务是什么?它们之间的区别是什么?

    正确答案: 系统设计的任务:遵守ITU-T建议规范,明确系统的全部技术参数,以技术的先进性与经济性相结合,力求达到最佳性价比。
    系统设计与工程设计不同,系统设计是从经济性和技术可行性两个方面综合考虑,使整个系统具有最佳性价比,工程设计是在系统设计的基础上,完成工程建设中详细的经费概预算,设备和线路的具体安装细节等,它们是相辅相成,有机统一的。
    解析: 暂无解析

  • 第13题:

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

    【说明】

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

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

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

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

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

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



    【问题1】

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

    【问题2】

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

    【问题3】

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


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

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

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

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

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

    【问题2】

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

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

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

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

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

    【问题3】

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

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

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

  • 第14题:

    简述正向演替与逆向演替的区别。


    正确答案: 正向演替:结构的复杂化;以低级小型植物为主朝着高级大型植物发展;物种多样性有增加趋势;生活型多样化;窄生态幅种在增加;种群趋向中生化;群落生物趋向增加;土地生产力利用趋于增加;土壤剖面的发育成熟;种群生境的优化。
    逆向演替:结构的简单位;从大型植物为主趋向于小型植物占优势;物种多样性有减少趋势;生活型的简化;生态幅宽的种增加;群落趋向于旱生化或湿生化;群落生物量趋向减少;土地生产力利用趋于减少;土壤剖面弱化;种落生境的恶化。

  • 第15题:

    软件工程的目标是什么?软件工程有哪些原则?


    正确答案: 软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。原则如下:抽象、模块化、信息隐藏、局部化、完整性、一致性和可验证性。

  • 第16题:

    软件与硬件的区别是什么?


    正确答案:软件是一种逻辑部件,而不是具体的物理部件。软件在开发、生产、使用、维护等方面与硬件相比有明显差异。软件是开发,硬件是制造软件是自定的,硬件是组装的软件不会磨损,硬件存在机械磨损问题。

  • 第17题:

    什么是软件工程?软件工程和计算机科学有何区别?


    正确答案:软件工程是以计算机科学理论及其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经过时间证明是正确的管理措施和当前能够得到的最好的技术、方法相结合,以期用较少的代价获取高质量的软件。
    计算机科学侧重于理论研究,其成果可应用于软件工程,而软件工程则强调如何有效的建造一个软件系统。

  • 第18题:

    什么是软件工程?软件工程的目标是什么?


    正确答案: 软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。
    目标:
    1.合理预算开发成本,付出较低的开发费用。
    2.实现预期的软件功能,达到较好的软件性能,满足用户的需求。
    3.提高软件的可维护性,降低维护费用。
    4.提高软件开发生产率,及时交付使用。

  • 第19题:

    光纤通信系统与工程中,系统设计与工程设计的任务是什么?它们之间的区别是什么?


    正确答案:系统设计的任务:遵守ITU-T建议规范,明确系统的全部技术参数,以技术的先进性与经济性相结合,力求达到最佳性价比。
    系统设计与工程设计不同,系统设计是从经济性和技术可行性两个方面综合考虑,使整个系统具有最佳性价比,工程设计是在系统设计的基础上,完成工程建设中详细的经费概预算,设备和线路的具体安装细节等,它们是相辅相成,有机统一的。

  • 第20题:

    问答题
    软件与硬件的区别是什么?

    正确答案: 软件是一种逻辑部件,而不是具体的物理部件。软件在开发、生产、使用、维护等方面与硬件相比有明显差异。软件是开发,硬件是制造软件是自定的,硬件是组装的软件不会磨损,硬件存在机械磨损问题。
    解析: 暂无解析

  • 第21题:

    问答题
    软件测试的基本任务是什么?测试与纠错有什么区别?

    正确答案: 软件测试的基本任务是通过在计算机上执行程序,暴露程序中潜在的错误。
    测试和纠错目的和任务都不相同,测试是为了发现程序的错误,纠错是为了定位和纠正错误,从而消除软件故障,保证程序的可靠运行。
    解析: 暂无解析

  • 第22题:

    问答题
    需求分析与软件设计二个阶段任务的主要区别是什么?

    正确答案: 需求分析定义软件的用户需求,即定义待开发软件能做什么。
    软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。
    解析: 暂无解析

  • 第23题:

    问答题
    在重构和正向工程之间存在的细微不同是什么?

    正确答案: 重构是指在统一抽象级别上转换系统的描述形式;正向工程过程应用软件工程的原理、概念、技术和方法来重新开发某个现有的应用系统。从概念可以看出,重构是从一个系统环境转换到另一个系统环境,而正向工程则是重新开发,从零开始,没有一定基础的。
    解析: 暂无解析