《浅谈计算机软件重构技术_浅谈对计算机科学与技术专业的认识.docx》由会员分享,可在线阅读,更多相关《浅谈计算机软件重构技术_浅谈对计算机科学与技术专业的认识.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、浅谈计算机软件重构技术_浅谈对计算机科学与技术专业的认识 摘要:本文阐述了软件重构技术的现状,探讨意义和发展前景。关键词:软件重构 原型开发 简化 复用 测试中图分类号:TP274 文献标识码:A 文章编号:1017-9416(2022)06-0202-021、软件重构的定义软件维护最初最贴切的形容就是“打补丁”,全部的维护工作采纳的都是一种消极但快速的方法。假如发觉系统有问题,维护人员就快速找到这个问题,然后修改源代码,解决这个问题。假如要添加一个新的功能,那就找到一个相像的模块,修改代码以后放进去。这样反复多次之后,系统变得越来越臃肿,越来越难于理解,维护也越来越艰难、越来代价越高。人们期
2、望解决这一问题的根本方法,于是软件重构技术应运而生。通过这种技术,使得编码更加谨慎合理,编码时假如特别当心,则代码会具有良好的形态和味道,在修改添加代码前,通过查看代码的形态和味道来确定是否进行更新。假如代码不简单被理解,则必需重构代码以使得维护变得简单,再进行相应的扩展和更新。软件重构是指在不变更软件的功能和外部可见性的状况下,为了改善软件的结构,提高清楚性、可扩展性和可重用性而对软件进行的改造。简而言之,重构就是改进已经写好的软件的设计。也就是说,改进后的软件其原有的功能和行为都不变更,变更的仅仅是程序内部的编码。重构是在源代码级别上进行的,目的是使原有的代码在重构后具有良好的程序结构。2
3、、软件重构的意义计算机技术的发展带来了全社会的变革,人们的生活对计算机的依靠越来越强,所运用的软件也越来越困难,对开发软件所运用的技术也要求越来越高。面对对象开发方法等有利于软件利用的方法和技术得到了广泛的运用。但同时也显示出一些弊端。为了开发出访用便利,利于维护的软件系统,软件开发人员希望把初始系统设计得尽可能的完备、敏捷、具有良好的可扩展性。这不仅要求软件开发人员具有较高的软件设计实力,而且,再完备的设计也不行能完全适应将来的需求改变。解决这一问题的方法是软件工程中的原型开发方法,在原型开发方法中,系统开发人员首先快速开发出一个系统原型供应给用户运用,通过用户在运用过程中的不断反馈来对系统
4、进行修改直到最终开发出系统的成熟版本。软件扩展是在软件重构的基础上完成的。在须要扩展时,运用软件重构方法和重构工具,实行提取抽象数据类型、提取接口等技术对代码结构进行改造,以利于软件的维护、功能的增加等活动。对于已经投入运用的系统,由于需求、业务、法规等因素的改变,也会因此而变更,须要在原有的系统上进行修改和扩充。在维护过程中可能会遇到设计风格不一样、过时的编程语言、系统文档过时,不完整和难于理解的问题。这时候,为也延长旧系统的生命周期,降低系统维护成本。就可以采纳以原有系统进行重构的方法对软件进行重构,使其在改善程序结构的基础上适应需求的改变。软件重构也能为程序员的编码带来好处,首先,可以简
5、化设计,重构允许系统设计刚好满意现有需求,不必过多考虑将来的需求,降低了系统设计的困难程度,当有新的需求时,可以利用重构技术,快速进行设计扩展。其次,可以增加程序的可读性,便于理解他人的编程目的,利于快速开发软件系统。再者,软件重构可以使程序的结构更加清楚,削减编程过程中出现的问题,并且,由于重构是建立在严格的测试之上的,所以能够快速发觉问题。将困难的软件测试分解为递进式的简洁测试,降低了测试的困难度。最重要的是重构可以使得代码的可理解性大大提高,缘由在于,重构技术支持更小的类、更短的方法、更少的局部变量、更小的系统耦合,重构可以让程序员养成良好的编程习惯。3、软件重构的探讨现状软件重构的探讨
6、紧紧围绕以下几个方面绽开,目前已经取得了一些成果。(1)基本重构方法和复合重构方法的探讨,如Opdyke针对C+语言定义的一组基本重构方法,在其中定义的每个基本重构方法中,由前提条件和执行动作组成。在进行重构时以每个基本方法为重构的最小单位。通过执行动作对程序的修改步骤进行描述,前提条件是用来保证程序行为的不变。将这些基本重构方法组合起来形成复合重构,就可以用来解决困难的重构问题。Roberts等人受Opdyke探讨的启发,对基本重构方法进行了改进,增加了后置条件约束,探讨了复合结构中基本重构之间的依靠性问题,提出了计算复合重构前置条件的计算方法,并开发了针对Smalltalk的重构协助工具。
7、(2)不良程序结构的探查和整理。如冗余代码探查和消退、类层次的整理、横切关注的探查和封装等。其中冗余代码的探查和消退主要运用字符串比较的方法,类层次的整理主要运用“渐进增加类”算法实现,而横切叛党的探查和封装主要运用面对方面范型进行探讨和实践。(3)程序理解方法和工具。要进行软件维护和软件重构必需在理解程序结构的基础上施行。除了针对程序代码中的不良程序结构进行探查,还须要围绕程序的设计模型进行分析。如Pauw等人开发的Ovation系统,运用了执行模式视图在不同的抽象层次上对程序的执行进行可视化,并对生成的模型进行一些操作。Storey等人开发Rigi逆向工程环境则运用有向图表示软件构件和它们
8、之间的关系。(4)面对典型设计的重构方法。如Tokuda和Batory探讨了采纳手工方式对程序应用设计模式的重构的方法,他们通过试验指出:一个典型的系统在运用重构和引入设计模式后,可以明显地增加软件质量。Tonella和Potrich提出了从C代码中自动抽取UML交互图的方法。这个基于静态的程序分析技术的方法,基本可以描述在任何输入下程序的结果。将对象交互图的抽取过程分两步:第一步,从源码中推断出程序所创建的对象和程序中变量;其次步,把方法的每一个调用分解成交互过程中包含的发送类和接收类。(5)软件重构协助工具。如Opdyke开发的重构协助工具C+重构工具,Roberts等人开发的Smalltalk Refactory Browser等。这些工具虽然没能成为好用的工具,但却是后续研发工作的基础。 第6页 共6页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页第 6 页 共 6 页