DannyKX 2021-08-17 08:31 采纳率: 100%
浏览 67
已结题

什么是可重构软件系统呢?

写论文时候导师让我设计一个可重构软件,请问一下什么是可重构软件呀?

  • 写回答

3条回答 默认 最新

  • 「已注销」 2021-08-17 08:37
    关注

    1.定义
    在软件工程学中重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

    2.重构的重要性? 为什么要重构?

        为什么要重构?在不改变系统功能的情况下,改变系统的实现方式。为什么要这么做?投入精力不用来满足客户关心的需求,而是仅仅改变了软件的实现方式,这是否是在浪费客户的投资呢?
    
        对软件的生命造成威胁的因素只有一个:需求的变更。一个软件总是为解决某种特定的需求而产生,随着时间的推移客户的需求总是会发生变化的,这就产生了一种糟糕的现象:软件产品最初制造出来,是经过精心的设计,具有良好架构的。但是随着需求的变化,必须不断的修改原有的功能、追加新的功能,还免不了有一些缺陷需要修改。为了实现变更,不可避免的要违反最初的设计构架。经过一段时间以后,软件的架构就千疮百孔了。bug越来越多,越来越难维护,新的需求越来越难实现,软件的构架对新的需求渐渐的失去支持能力,而是成为一种制约。最后新需求的开发成本会超过开发一个新的软件的成本,这就是这个软件系统的生命走到尽头的时候。
    
         重构就能够最大限度的避免这样一种现象。系统发展到一定阶段后,使用重构的方式,不改变系统的外部功能,只对内部的结构进行重新的整理。通过重构,不断的调整系统的结构,使系统对于需求的变更始终具有较强的适应能力,延长软件生命周期。
    
        重构的好处:
    

    能改进软件设计使软件更容易被理解(布局、命名、注释、简化逻辑等)
    能帮你找到bug()
    提高软件的开发速度(改进方法,为后继开发提供优势)
    3.什么时候进行重构?什么情况下需要重构?
    在添加新功能时进行重构。
    在修改bug时进行重构。
    在代码复审时进行重构。
    存在以下情况需要重构:

    带复杂条件逻辑的程序:方法过长,逻辑过于复杂,错误率直线上升,可读性直线下降;过大的类,往往是类抽象不合理的结果,降低了代码的复用性;
    逻辑重复的程序: 一个类中存在相同的代码块,提炼为宜个独立方法;不同类中有相同的代码块,提炼为一个新类;
    过渡耦合的程序:修改或增加一个小功能修改修改大量的代码;
    难以阅读的程序:糟糕的命名方式,排版、注解;
    ......
    当现有的程序无法运行,或重构成本已经超出重写成本时应该是重写程序,而不是重构程序
    4.重构中的注意点
    1.重构中需要注意修改已经对外提供的接口,这时你需要特别谨慎,因为任何事情都有可能发生。最好的办法是发布一个新接口,保留原有接口,在原有接口里直接调用新接 口(注意:不是copy新接口的代码,这样会导致代码重复),然后在原有旧接口上增加注解“"@Deprecated"(不赞成、过时的方法),这样可以给调用接口的地方提供时间来修改。

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月31日
  • 专家已采纳回答 1月23日
  • 创建了问题 8月17日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址