首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 46 毫秒
1.
整合重构的基本思想和物理设计的基本技术,提出了物理重构的概念.它是对软件物理结构的再设计,目的是在不改变软件外在行为的前提下,调整软件组织结构,从而提高软件的开发效率和可维护性等.在此基础上,提出用“识别-重构.评估”的迭代过程来实施物理重构,并介绍了常用的物理重构方法.实例研究表明,物理重构能够有效地优化系统的物理结构,使开发者从多个角度持续改善软件质量.  相似文献   

2.
提出一种新的重构语义分析方法,引入了后置条件作为重构后程序语义的分析条件,然后基于该方法提出一种重构异常行为检测方法,利用不同重构之间的关系及其关联语义特征,发现重构实施时的错误.分析表明,该方法可以有效发现E-clipse中存在的若干缺陷,并且可以检测出使用Eclipse实施相应重构时产生的程序异常行为.  相似文献   

3.
刘阳  刘秋荣  刘辉 《计算机科学》2015,42(12):105-107
软件重构历史的自动检测是目前软件重构领域的一个研究热点。其主要目的是方便程序员或软件维护人员理解 软件演化的历史,也便于根据服务代码重构历史对其客户代码进行相应的重构操作。虽然相关研究人员已经提出了多种自动化的重构历史检测方法,但目前未见关于函数提取重构历史检测的方法或工具。为此,提出了一种基于版本比较的函数抽取重构自动检测方法,实现并验证了该方法的有效性。在8个开源项目上进行了实验验证,结果表明其查准率为65%~90%。此外,在一个小型项目上通过监控程序员的重构操作获得了全部的函数提取重构操作,进而计算出检测算法的查全率和查准率均为85%。  相似文献   

4.
通过在软件体系结构层次实施软件重构,能够改善软件的质量、提高软件的易演化性。提出了基于演化信息实施软件体系结构重构的策略,通过分析体系结构的演化历史,采用概念格的方法分析其中构件间的演化依赖关系,从而达到改善体系结构质量的目的。  相似文献   

5.
通过在软件体系结构层次实施软件重构,能够改善软件的质量、提高软件的易演化性。提出了扩展的构件依赖关系图的概念,将软件体系结构的逻辑依赖关系以及演化历史中蕴涵的演化依赖关系纳入到统一的表示中。进一步提出了基于扩展的构件依赖关系图聚类的体系结构重构策略,从而达到改善体系结构质量的目的。  相似文献   

6.
赵清杰 《计算机教育》2010,(14):159-160
<正>《C++程序设计》(ISBN:978-7-302-18297-9),由赵清杰、胡思康、宋红编著,于2008年由清华大学出版社出版。本书作者具有多年C++面向对象程序设计课程的教学经验。根据教学过程中反映出的主要问题,作者在参考大  相似文献   

7.
一本难得的C++教材——评谭浩强教授的《C++程序设计》   总被引:1,自引:1,他引:0  
近年来,由于面向过程的程序设计已满足不了编程的要求,而面向对象程序设计迅速地在国内推广,愈来愈多的人要求学习C 语言。但是由于C 语言语法复杂,使用灵活,内容广泛,不易掌握,这一点我在教学过程中也深有体会,学生对面向对象的思想不容易理解,但看了谭浩强教授出版的《C 程序设计》(清华大学出版社出版)后,问题就迎韧而解了。全书共分两大部分,前七章是基础部分,适用于从未学过C语言的读者。后七章是面向对象程序设计部分,有C语言基础的可以直接从这里入门。在这部分里系统地介绍C 所支持的面向对象程序设计方法的核心内容,按照“…  相似文献   

8.
根据一种软件可测性设计技术——软件内建自测试的实施方案,该文提出了一种针对C 类测试的测试描述语言TDL,以提高C 类测试数据的存储结构化,方便其共享和复用。重点讨论了TDL语言的核心对象和结构,并给出了一个TDL程序的实例。  相似文献   

9.
本文介绍了在C++Builder中用VFWSDK实现视频捕获编程,以及在航空摄像侦察目标视频管理系统中的应用。  相似文献   

10.
本文介绍了软件再工程的概念,分析了为什么要实施软件再工程的原因,简单叙述了实施软件再工程的策略和步骤。  相似文献   

11.
在多核时代,为了发挥多核处理器最大性能,软件维护人员的一个重要任务是对代码进行面向并发重构,即将顺序代码重构为并发代码和将并发代码重构更优为并发代码。针对C++语言的三种并发设施:POSIX Pthread、Open MP、C++0x并发库,详细阐述了C++面向并发重构的三类重构模式,以及每种模式的重构方法。  相似文献   

12.
官晓冲 《微机发展》2004,14(4):48-52
重构是对软件的一种调整,在不改变软件的行为的同时提高其可理解性,降低其修改成本。模板是标准C 语言中的一个重要特性,并激起了对于基于此的泛型程序设计的研究。文中研究了如何将C 模板特性应用到软件重构中。重构是提高软件内部质量的重要途径,通过结合C 语言的模板特性,可以让程序更为精练、更为容易重用和改进。通过一些具体的实例,论述和介绍了三个基于模板的重构手法,以及对原有的程序设计的改进。  相似文献   

13.
首先设计并实现一个基于摄像头的阅卷系统,该系统由试卷获取、灰度化、二值化、畸变变换、倾斜校正、图像定位和识别等图像处理流程组成。然后以此为依据,通过对重构技术及设计模式原则和方法的系统研究,对该系统框架进行优化和重构。本文充分参照现有的设计模式,通过重构技术,改善现有代码的质量,增加系统的可维护性和可复用性。  相似文献   

14.
随着软件系统的演化,其模块化结构会逐渐退化。软件重构是调整系统结构的重要手段,但哪些模块最需要重构却难以预测。提出了一种基于程序聚类技术的模块重构风险分析方法,该方法通过对目标系统进行结构聚类和语义聚类获得其参考模块化结构,然后比较现实模块化结构与参考模块化结构之间的差异,对程序模块的设计质量进行评价,识别出系统中重构风险较高的模块。实验以三个开源软件的演化历史作为研究对象,与传统的模块化度量方法进行了比较,结果表明采用所提方法获得的预测结果与实际重构活动有较好的吻合度,从而验证了该方法的有效性。  相似文献   

15.
陈林  徐宝文  钱巨  周天琳  周毓明 《软件学报》2009,20(10):2617-2627
重构泛型实例有利于提高软件的复用性和类型安全,但现有重构方法的时间复杂度较高,不适用于即时持续的重构.分析了变量类型传播分析方法在重构中的不足,提出了一种改进的泛型变量类型传播分析方法.该方法通过引入一种可以描述复杂参数化类型关系的泛型类型传播图,以复制节点的方式实现泛型变量属性敏感的类型分析,并通过解决别名问题来提高分析的精度.实例研究表明,可以在与程序规模呈近似线性增长的时间复杂度内实施重构,取得了较满意的效果.  相似文献   

16.
面向复用成本优化的构件重构方法   总被引:2,自引:0,他引:2  
王忠杰  徐晓飞  战德臣 《软件学报》2005,16(12):2157-2165
构件需要在其复用期间进行持续的优化改进和重构,消除设计需求与复用需求之间的差异,在保证有用性的前提下改善可用性.为此,提出一种面向复用成本优化的、基于局部性原理与实例集分解的构件重构方法.首先给出一种基于特征的构件模型,着重探讨基于可变点的复用机制,并在此基础上研究构件复用成本的构成要素、优化策略与优化目标,即通过提高构件固定部分的比例降低复用成本.探讨了构件复用过程中存在的时间/空间局部性,依据构件实例复用频度的差异,将具有高复用频度的实例分离出来形成(半)实例化构件,以降低构件复用过程中的实例化成本与实现成本.进而提出一种基于贪心策略的构件实例分解算法实现近似最优化,并通过实例验证其有效性.该方法通过将构件特征间依赖关系分解为构件实例间依赖关系,将构件的部分实例化工作由复用阶段提前到设计阶段来完成,将若干可变特征转化为固定特征,从而避免了构件频繁复用时的多次实例化,以降低复用成本.  相似文献   

17.
The efficiency of object-oriented programs has become a point of great interest. One necessary factor for program efficiency is the optimization techniques involved. This paper presents the performance of several variations of a given C++ program and compares them with a version that uses no object-oriented features. Our result indicates that some object-oriented features in C++ are not well optimized in current C++ compilers. We thus discuss some code optimization techniques that can improve the efficiency based on the given C++ program.  相似文献   

18.
钟扬  刘业政  马向辉 《微机发展》2007,17(11):160-163
结对编程是两个软件开发者在一台电脑前一起工作的一种编程实践,是极限编程方法的基础。对于软件产品的开发,人的知识是项目成功的重要因素。在组织的软件过程改进中,合适地引入结对编程,有利于知识的共享并营造团队合作的氛围,进而改善产品质量和缩短完成时间。不同规模的组织采用的软件过程的不同,对结对编程的引入会有不同的影响,所以在实践中结对编程的重构是必需的。基于小型组织和敏捷过程的项目实践,给出了一个切合实际的结对编程重构方案,进而提高小团队的生产效率。  相似文献   

19.
小团队结对编程实践研究和重构   总被引:1,自引:0,他引:1  
结对编程是两个软件开发者在一台电脑前一起工作的一种编程实践,是极限编程方法的基础。对于软件产品的开发,人的知识是项目成功的重要因素。在组织的软件过程改进中,合适地引入结对编程,有利于知识的共享并营造团队合作的氛围,进而改善产品质量和缩短完成时间。不同规模的组织采用的软件过程的不同,对结对编程的引入会有不同的影响,所以在实践中结对编程的重构是必需的。基于小型组织和敏捷过程的项目实践,给出了一个切合实际的结对编程重构方案,进而提高小团队的生产效率。  相似文献   

20.
When analyzing legacy code, generating a high‐level model of an application during the reverse engineering process helps the developers understand how the application is structured and how the dependencies relate the different software entities. Within the context of procedural programming languages (such as C), the existing approaches to get a model of the code require documentation and/or implicit knowledge that stakeholders acquire during the software building. These approaches use the code itself to build a syntactic model where we see the different software artifacts, such as variables, functions, and modules. However, there is no supporting methodology to detect and analyze if there are relationships/dependencies between those artifacts, such as which variable in a module is declared using an abstract data type described in another one, or which are the functions that are using parameters typed with an abstract data type; or any design decision taken by original developers, such as how the developer has implemented functions in different modules. On the other hand, current developers use object‐oriented (OO) paradigm to implement not only business applications but also useful methodologies/tools that allow semiautomatic analysis of any application. We must remark the legacy procedural code still has worth and is working in several industries, and as any evolving code, the developers have to be able to perform maintenance tasks minimizing the limitations offered by the language. Based on useful properties that the OO paradigm (and their supporting analysis tools) provide, such as UML models, we propose M2K as a methodology to generate a high‐level model from legacy procedural code, mainly written in Ansi C. To understand how C‐based applications were implemented is not a new problem in software reengineering. However, our contribution is based on building an OO model and suggesting different refactorings that help the developer to improve it and to eventually guide a new implementation of the target application. Specifically, the methodology builds cohesive software entities mapped from procedural code and makes the coupling between C entities explicit in the high‐level model. The result of our methodology is a set of refactored class candidates: a structure that groups a set of variables and a set of functions obtained from the C applications. Based on the class candidate model, we propose refactorings based on OO design principles to improve the design of the application. The most relevant design improvements were obtained with algorithm abstraction by applying the strategy pattern, attributes/methods relocalization, variables types generalization, and removing/renaming methods/attributes. Besides a methodology and the supporting tool, we provide 14 case studies based on real projects implemented in C, and we showed how the results validate our proposal.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号