首页 > 最新文献

Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)最新文献

英文 中文
Modeling process and product quality during maintenance 维护期间的建模过程和产品质量
G. Stark
This paper contains data demonstrating our recent experiences with measuring quality of evolving systems. Both process and product quality measures are discussed. This is an area in which more effective collaboration between practitioners and researchers would be of great value. We note that access to industrial software by researchers is often blocked by proprietary restrictions. When such restrictions can be eased, publication of analysis results is often hampered by the industrial owners and developers of the software. I believe that practice can be significantly aided by the data and results of broadly based research studies. Thus, closer collaboration in this area will benefit both communities.
本文包含的数据显示了我们最近在测量演化系统质量方面的经验。讨论了过程和产品质量措施。在这个领域,从业者和研究人员之间更有效的合作将具有很大的价值。我们注意到,研究人员对工业软件的访问经常受到专有限制的阻碍。当这些限制可以放宽时,分析结果的发布通常会受到软件的工业所有者和开发人员的阻碍。我相信,基于广泛研究的数据和结果可以极大地帮助实践。因此,在这一领域更密切的合作将使双方受益。
{"title":"Modeling process and product quality during maintenance","authors":"G. Stark","doi":"10.1109/ICSM.1998.738494","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738494","url":null,"abstract":"This paper contains data demonstrating our recent experiences with measuring quality of evolving systems. Both process and product quality measures are discussed. This is an area in which more effective collaboration between practitioners and researchers would be of great value. We note that access to industrial software by researchers is often blocked by proprietary restrictions. When such restrictions can be eased, publication of analysis results is often hampered by the industrial owners and developers of the software. I believe that practice can be significantly aided by the data and results of broadly based research studies. Thus, closer collaboration in this area will benefit both communities.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"230 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133874933","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
An experiment in identifying persistent objects in large systems 在大型系统中识别持久对象的实验
A. Cimitile, A. D. Lucia, G. D. Lucca
We present an experiment in identifying coarse-grained persistent objects in a legacy system of an Italian public organisation. Object methods are searched for at the program level driven by the minimisation of the coupling between objects. This strategy is useful in incremental migration projects requiring the identification of largely independent subsystems needing low re-engineering and decoupling costs to be first encapsulated in different wrappers and then selectively replaced. The aim of the experiment was to evaluate the feasibility of this approach when applied to large software systems. The work presented in this paper is part of the project PROGRESS, a research project on process and software re-engineering in Italian public organisations carried out by Italian universities and research centres.
我们提出了在意大利公共组织的遗留系统中识别粗粒度持久对象的实验。对象方法是在程序级别上通过最小化对象之间的耦合来搜索的。这种策略在增量迁移项目中是有用的,这些项目需要识别很大程度上独立的子系统,这些子系统需要低的再工程和解耦成本,首先将它们封装在不同的包装器中,然后有选择地替换。实验的目的是评估这种方法在应用于大型软件系统时的可行性。本文中介绍的工作是PROGRESS项目的一部分,PROGRESS项目是意大利大学和研究中心开展的意大利公共组织过程和软件再工程研究项目。
{"title":"An experiment in identifying persistent objects in large systems","authors":"A. Cimitile, A. D. Lucia, G. D. Lucca","doi":"10.1109/ICSM.1998.738500","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738500","url":null,"abstract":"We present an experiment in identifying coarse-grained persistent objects in a legacy system of an Italian public organisation. Object methods are searched for at the program level driven by the minimisation of the coupling between objects. This strategy is useful in incremental migration projects requiring the identification of largely independent subsystems needing low re-engineering and decoupling costs to be first encapsulated in different wrappers and then selectively replaced. The aim of the experiment was to evaluate the feasibility of this approach when applied to large software systems. The work presented in this paper is part of the project PROGRESS, a research project on process and software re-engineering in Italian public organisations carried out by Italian universities and research centres.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"11 23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134467167","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
The visibility of maintenance in object models: an empirical study 对象模型中维护的可见性:一个实证研究
M. Lindvall, Magnus Runesson
This empirical study analyzes changes in C++ source code which occurred between two releases of an industrial software product and compares them with entities and relations available in object-oriented modeling techniques. The comparison offers increased understanding of what changes can and cannot be described using such object models. The goals were to investigate if the object model in this particular project is either abstract and stable or detailed and sensitive to change, and whether or not changes made to the C++ source code are visible in the object model. Four metrics for characterization of change are formally defined and used, namely correctness, completeness, compliance, and visibility factor. The major finding is that even though many of the classes are changed, the majority of these changes turn out to be invisible in the object model. That is, changes made on the source code level are of a finer granularity than available in common object modeling concepts. This may explain why object models seem to be of little use in release-oriented development.
本实证研究分析了在工业软件产品的两个版本之间发生的c++源代码变化,并将它们与面向对象建模技术中可用的实体和关系进行了比较。通过比较,可以更好地理解哪些变化可以用这种对象模型来描述,哪些变化不能用这种模型来描述。目标是调查这个特定项目中的对象模型是抽象和稳定的,还是详细和对变化敏感的,以及对c++源代码所做的更改是否在对象模型中可见。正式定义并使用了变更特征的四个度量,即正确性、完整性、遵从性和可见性因素。主要的发现是,即使更改了许多类,这些更改中的大多数在对象模型中是不可见的。也就是说,在源代码级别所做的更改比在普通对象建模概念中可用的更改具有更细的粒度。这也许可以解释为什么对象模型在面向发布的开发中似乎用处不大。
{"title":"The visibility of maintenance in object models: an empirical study","authors":"M. Lindvall, Magnus Runesson","doi":"10.1109/ICSM.1998.738489","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738489","url":null,"abstract":"This empirical study analyzes changes in C++ source code which occurred between two releases of an industrial software product and compares them with entities and relations available in object-oriented modeling techniques. The comparison offers increased understanding of what changes can and cannot be described using such object models. The goals were to investigate if the object model in this particular project is either abstract and stable or detailed and sensitive to change, and whether or not changes made to the C++ source code are visible in the object model. Four metrics for characterization of change are formally defined and used, namely correctness, completeness, compliance, and visibility factor. The major finding is that even though many of the classes are changed, the majority of these changes turn out to be invisible in the object model. That is, changes made on the source code level are of a finer granularity than available in common object modeling concepts. This may explain why object models seem to be of little use in release-oriented development.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133663952","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 22
Detection of logical coupling based on product release history 基于产品发布历史的逻辑耦合检测
H. Gall, K. Hajek, M. Jazayeri
Code-based metrics such as coupling and cohesion are used to measure a system's structural complexity. But dealing with large systems-those consisting of several millions of lines-at the code level faces many problems. An alternative approach is to concentrate on the system's building blocks such as programs or modules as the unit of examination. We present an approach that uses information in a release history of a system to uncover logical dependencies and change patterns among modules. We have developed the approach by working with 20 releases of a large Telecommunications Switching System. We use release information such as version numbers of programs, modules, and subsystems together with change reports to discover common change behavior (i.e. change patterns) of modules. Our approach identifies logical coupling among modules in such a way that potential structural shortcomings can be identified and further examined, pointing to restructuring or reengineering opportunities.
基于代码的度量(例如耦合和内聚)用于度量系统的结构复杂性。但是在代码级别处理由数百万行组成的大型系统面临许多问题。另一种方法是将重点放在系统的构建块上,例如程序或模块,作为检查的单元。我们提出了一种方法,该方法使用系统发布历史中的信息来发现模块之间的逻辑依赖关系和更改模式。我们通过与大型电信交换系统的20个版本合作开发了这种方法。我们使用发布信息,例如程序、模块和子系统的版本号,以及变更报告来发现模块的共同变更行为(即变更模式)。我们的方法以这样一种方式识别模块之间的逻辑耦合,即可以识别并进一步检查潜在的结构缺陷,指出重构或重新设计的机会。
{"title":"Detection of logical coupling based on product release history","authors":"H. Gall, K. Hajek, M. Jazayeri","doi":"10.1109/ICSM.1998.738508","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738508","url":null,"abstract":"Code-based metrics such as coupling and cohesion are used to measure a system's structural complexity. But dealing with large systems-those consisting of several millions of lines-at the code level faces many problems. An alternative approach is to concentrate on the system's building blocks such as programs or modules as the unit of examination. We present an approach that uses information in a release history of a system to uncover logical dependencies and change patterns among modules. We have developed the approach by working with 20 releases of a large Telecommunications Switching System. We use release information such as version numbers of programs, modules, and subsystems together with change reports to discover common change behavior (i.e. change patterns) of modules. Our approach identifies logical coupling among modules in such a way that potential structural shortcomings can be identified and further examined, pointing to restructuring or reengineering opportunities.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"203 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132703578","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 505
Improving visual impact analysis 改善视觉影响分析
Matthew A. Hutchins, K. Gallagher
Visual impact analysis is a software visualisation technique that lets software maintainers judge the impact of proposed changes and plan maintenance accordingly. An existing CASE tool uses a directed acyclic graph display derived from decomposition slicing of a program for visual impact analysis. In this paper, we analyse the graph display and show that it is semantically ambiguous and fails to show important information. We propose requirements for an improved display based on a definition of "interference" between variables in a maintenance context. The design for a new display is presented with a series of examples to illustrate its effectiveness. The display is focused on providing a straightforward method to analyse the impact of changes.
可视化影响分析是一种软件可视化技术,它允许软件维护人员判断所提议的更改的影响,并相应地计划维护。现有的CASE工具使用从程序的分解切片派生的有向无环图形显示来进行视觉影响分析。在本文中,我们分析了图形显示,表明它是语义模糊,不能显示重要的信息。我们根据维护环境中变量之间“干扰”的定义提出了改进显示的需求。文中给出了一种新型显示器的设计方案,并举例说明了其有效性。展示的重点是提供一种直接的方法来分析变化的影响。
{"title":"Improving visual impact analysis","authors":"Matthew A. Hutchins, K. Gallagher","doi":"10.1109/ICSM.1998.738521","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738521","url":null,"abstract":"Visual impact analysis is a software visualisation technique that lets software maintainers judge the impact of proposed changes and plan maintenance accordingly. An existing CASE tool uses a directed acyclic graph display derived from decomposition slicing of a program for visual impact analysis. In this paper, we analyse the graph display and show that it is semantically ambiguous and fails to show important information. We propose requirements for an improved display based on a definition of \"interference\" between variables in a maintenance context. The design for a new display is presented with a series of examples to illustrate its effectiveness. The display is focused on providing a straightforward method to analyse the impact of changes.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"95 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114452992","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 24
A study of communication and cooperation in distributed software project teams 分布式软件项目团队中的沟通与合作研究
A. French, P. Layzell
With a growing demand for software systems and an increase in their complexity, software development and maintenance is no longer the preserve of individual designers and programmers, but is a team-based activity. Indeed, development and maintenance has always involved a wide variety of stakeholders (customers, designers, programmers, maintainers, end-users) making the need for communication and cooperation an inherent characteristic. Changes in support technology, economic factors and globalisation of software development and maintenance is increasingly resulting in the geographical separation of personnel. Where such distribution of personnel occurs, it is clearly important that there is high quality communication and cooperation. This paper presents the results and conclusions from a study of communication and cooperation practices on a range of distributed commercial software projects.
随着对软件系统需求的增长和其复杂性的增加,软件开发和维护不再是单个设计师和程序员的专利,而是一种基于团队的活动。实际上,开发和维护总是涉及到各种各样的涉众(客户、设计人员、程序员、维护人员、最终用户),这使得对沟通和合作的需求成为一种固有的特征。支持技术、经济因素和软件开发和维护全球化的变化日益导致人员的地理分离。在发生这种人员分配的地方,显然重要的是要有高质量的沟通与合作。本文介绍了对一系列分布式商业软件项目的交流与合作实践的研究结果和结论。
{"title":"A study of communication and cooperation in distributed software project teams","authors":"A. French, P. Layzell","doi":"10.1109/ICSM.1998.738503","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738503","url":null,"abstract":"With a growing demand for software systems and an increase in their complexity, software development and maintenance is no longer the preserve of individual designers and programmers, but is a team-based activity. Indeed, development and maintenance has always involved a wide variety of stakeholders (customers, designers, programmers, maintainers, end-users) making the need for communication and cooperation an inherent characteristic. Changes in support technology, economic factors and globalisation of software development and maintenance is increasingly resulting in the geographical separation of personnel. Where such distribution of personnel occurs, it is clearly important that there is high quality communication and cooperation. This paper presents the results and conclusions from a study of communication and cooperation practices on a range of distributed commercial software projects.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128521512","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 23
Clone detection using abstract syntax trees 使用抽象语法树进行克隆检测
I. Baxter, A. Yahin, L. D. Moura, Marcelo Sant'Anna, Lorraine Bier
Existing research suggests that a considerable fraction (5-10%) of the source code of large scale computer programs is duplicate code ("clones"). Detection and removal of such clones promises decreased software maintenance costs of possibly the same magnitude. Previous work was limited to detection of either near misses differing only in single lexems, or near misses only between complete functions. The paper presents simple and practical methods for detecting exact and near miss clones over arbitrary program fragments in program source code by using abstract syntax trees. Previous work also did not suggest practical means for removing detected clones. Since our methods operate in terms of the program structure, clones could be removed by mechanical methods producing in-lined procedures or standard preprocessor macros. A tool using these techniques is applied to a C production software system of some 400 K source lines, and the results confirm detected levels of duplication found by previous work. The tool produces macro bodies needed for clone removal, and macro invocations to replace the clones. The tool uses a variation of the well known compiler method for detecting common sub expressions. This method determines exact tree matches; a number of adjustments are needed to detect equivalent statement sequences, commutative operands, and nearly exact matches. We additionally suggest that clone detection could also be useful in producing more structured code, and in reverse engineering to discover domain concepts and their implementations.
现有的研究表明,大型计算机程序的源代码中有相当一部分(5-10%)是重复代码(“克隆”)。检测和删除这样的克隆可以降低软件维护成本,可能达到同样的程度。以前的工作仅限于检测仅在单个词汇中不同的近缺失,或仅在完整函数之间的近缺失。本文提出了一种简单实用的方法,利用抽象语法树来检测程序源代码中任意程序片段的精确克隆和近缺失克隆。以前的工作也没有提出去除检测到的克隆的实用方法。由于我们的方法根据程序结构进行操作,因此可以通过产生内联过程或标准预处理器宏的机械方法来删除克隆。使用这些技术的工具被应用到一个大约400k源行的C生产软件系统中,结果证实了以前工作中发现的重复检测水平。该工具生成移除克隆所需的宏主体,以及替换克隆所需的宏调用。该工具使用一种众所周知的编译器方法的变体来检测公共子表达式。该方法确定精确的树匹配;需要进行许多调整来检测等效语句序列、交换操作数和几乎完全匹配。我们还建议克隆检测在生成更结构化的代码,以及在逆向工程中发现领域概念及其实现方面也很有用。
{"title":"Clone detection using abstract syntax trees","authors":"I. Baxter, A. Yahin, L. D. Moura, Marcelo Sant'Anna, Lorraine Bier","doi":"10.1109/ICSM.1998.738528","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738528","url":null,"abstract":"Existing research suggests that a considerable fraction (5-10%) of the source code of large scale computer programs is duplicate code (\"clones\"). Detection and removal of such clones promises decreased software maintenance costs of possibly the same magnitude. Previous work was limited to detection of either near misses differing only in single lexems, or near misses only between complete functions. The paper presents simple and practical methods for detecting exact and near miss clones over arbitrary program fragments in program source code by using abstract syntax trees. Previous work also did not suggest practical means for removing detected clones. Since our methods operate in terms of the program structure, clones could be removed by mechanical methods producing in-lined procedures or standard preprocessor macros. A tool using these techniques is applied to a C production software system of some 400 K source lines, and the results confirm detected levels of duplication found by previous work. The tool produces macro bodies needed for clone removal, and macro invocations to replace the clones. The tool uses a variation of the well known compiler method for detecting common sub expressions. This method determines exact tree matches; a number of adjustments are needed to detect equivalent statement sequences, commutative operands, and nearly exact matches. We additionally suggest that clone detection could also be useful in producing more structured code, and in reverse engineering to discover domain concepts and their implementations.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133190683","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1427
Using the O-A diagram to encapsulate dynamic memory access 使用O-A图封装动态内存访问
P. Tonella
Good software design is characterized by low coupling between modules and high cohesion inside each module. This is obtained by encapsulating the details about the internal structure of data and exporting only public functions with a clean interface. For programming languages such as C, which offer little support for encapsulation, code analysis tools may help in assessing and improving the access to data structures. In this paper a new representation of the accesses of functions to dynamic locations, called the O-A diagram, is proposed. By isolating meaningful groups of functions working on common dynamic data, such a diagram can be used to evaluate the encapsulation in a program and to drive possible interventions to improve it. Experimental results suggest that the aggregations identified by the O-A diagram are actually cohesive functions operating on a shared data structure. The results are useful in themselves, by providing the programmer with information about the organization of the accesses to dynamic memory. In addition the O-A diagram permits highlighting violations of encapsulation, so that proper restructuring actions can be performed.
好的软件设计的特点是模块之间的低耦合和每个模块内部的高内聚。这是通过封装有关数据内部结构的细节并仅导出具有干净接口的公共函数来实现的。对于像C这样的编程语言,它几乎不支持封装,代码分析工具可以帮助评估和改进对数据结构的访问。本文提出了函数对动态位置的访问的一种新的表示,称为O-A图。通过隔离处理公共动态数据的有意义的功能组,这样的图可以用来评估程序中的封装,并驱动可能的干预措施来改进它。实验结果表明,由O-A图识别的聚合实际上是在共享数据结构上操作的内聚函数。通过向程序员提供有关动态内存访问组织的信息,这些结果本身就很有用。此外,O-A图允许突出显示违反封装的情况,以便执行适当的重构操作。
{"title":"Using the O-A diagram to encapsulate dynamic memory access","authors":"P. Tonella","doi":"10.1109/ICSM.1998.738524","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738524","url":null,"abstract":"Good software design is characterized by low coupling between modules and high cohesion inside each module. This is obtained by encapsulating the details about the internal structure of data and exporting only public functions with a clean interface. For programming languages such as C, which offer little support for encapsulation, code analysis tools may help in assessing and improving the access to data structures. In this paper a new representation of the accesses of functions to dynamic locations, called the O-A diagram, is proposed. By isolating meaningful groups of functions working on common dynamic data, such a diagram can be used to evaluate the encapsulation in a program and to drive possible interventions to improve it. Experimental results suggest that the aggregations identified by the O-A diagram are actually cohesive functions operating on a shared data structure. The results are useful in themselves, by providing the programmer with information about the organization of the accesses to dynamic memory. In addition the O-A diagram permits highlighting violations of encapsulation, so that proper restructuring actions can be performed.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"76 5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123159378","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Do program transformations help reverse engineering? 程序转换是否有助于逆向工程?
K. Bennett
Program transformations have been advocated as a method for accomplishing reverse engineering. The hypothesis is that the original source code can be progressively transformed into alternative forms, but with the same semantics. At the end of the process, an equivalent program is acquired, but one which is much easier to understand and more maintainable. We have been undertaking an extensive programme of research over twelve years into the design and development of transformations for the support of software maintenance. The paper very briefly explains the theory, practice and tool support for transformational systems, but does not present new theoretical results. The main results are on an analysis of the strengths and weaknesses of the approach, based on experience with case studies and industrial applications. The evaluation framework used (called DERE) is that presented in Bennett and Munro (1998). It is hoped that the results will be of benefit to industry, who might be considering using the technology; and to other researchers, interested in addressing the open problems. The overall conclusion is that transformations can help in the bottom-up analysis and manipulation of source code at approximately the 3GL level, and have proved successful in code migration, but need to be complemented by other top-down techniques to be useful at higher levels of abstraction or in more ambitious re-engineering projects.
程序转换一直被提倡作为完成逆向工程的一种方法。假设是原始源代码可以逐步转换为其他形式,但具有相同的语义。在这个过程的最后,获得了一个等效的程序,但是它更容易理解和更易于维护。在过去的12年里,我们一直在进行广泛的研究项目,研究支持软件维护的转换的设计和开发。本文非常简单地解释了转换系统的理论、实践和工具支持,但没有提出新的理论结果。主要结果是根据案例研究和工业应用的经验,分析了该方法的优缺点。所使用的评估框架(称为DERE)是Bennett和Munro(1998)提出的。希望这些结果将对可能正在考虑使用该技术的工业有益;以及其他有兴趣解决开放问题的研究人员。总的结论是,转换可以帮助在大约3GL级别对源代码进行自底向上的分析和操作,并且在代码迁移中被证明是成功的,但是需要其他自顶向下的技术来补充,以便在更高的抽象级别或更雄心勃勃的再工程项目中有用。
{"title":"Do program transformations help reverse engineering?","authors":"K. Bennett","doi":"10.1109/ICSM.1998.738516","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738516","url":null,"abstract":"Program transformations have been advocated as a method for accomplishing reverse engineering. The hypothesis is that the original source code can be progressively transformed into alternative forms, but with the same semantics. At the end of the process, an equivalent program is acquired, but one which is much easier to understand and more maintainable. We have been undertaking an extensive programme of research over twelve years into the design and development of transformations for the support of software maintenance. The paper very briefly explains the theory, practice and tool support for transformational systems, but does not present new theoretical results. The main results are on an analysis of the strengths and weaknesses of the approach, based on experience with case studies and industrial applications. The evaluation framework used (called DERE) is that presented in Bennett and Munro (1998). It is hoped that the results will be of benefit to industry, who might be considering using the technology; and to other researchers, interested in addressing the open problems. The overall conclusion is that transformations can help in the bottom-up analysis and manipulation of source code at approximately the 3GL level, and have proved successful in code migration, but need to be complemented by other top-down techniques to be useful at higher levels of abstraction or in more ambitious re-engineering projects.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125027877","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 24
Identification of green, yellow and red legacy components 绿色、黄色和红色遗留成分的识别
M. C. Ohlsson, C. Wohlin
Software systems are often getting older than expected, and it is a challenge to try to make sure that they grow old gracefully. This implies that methods are needed to ensure that system components are possible to maintain. In this paper, the need to investigate, classify and study software components is emphasized. A classification method is proposed. It is based on classifying the software components into green, yellow and red components. The classification scheme is complemented with a discussion of suitable models to identify problematic components. The scheme and the models are illustrated in a minor case study to highlight the opportunities. The long term objective of the work is to define methods, models and metrics which are suitable to use in order to identify software components which have to be taken care of through either tailored processes (e.g. additional focus on verification and validation) or reengineering. The case study indicates that the long term objective is realistic and worthwhile.
软件系统的年龄往往比预期的要大,要确保它们优雅地老去是一项挑战。这意味着需要方法来确保系统组件是可能维护的。本文强调了对软件构件进行调查、分类和研究的必要性。提出了一种分类方法。它基于将软件组件分为绿色、黄色和红色组件。分类方案的补充是适当的模型的讨论,以确定有问题的组件。该方案和模型在一个小的案例研究中加以说明,以突出机会。这项工作的长期目标是定义适合使用的方法、模型和度量标准,以便识别必须通过定制过程(例如额外关注验证和确认)或再工程来处理的软件组件。案例研究表明,长期目标是现实的和值得的。
{"title":"Identification of green, yellow and red legacy components","authors":"M. C. Ohlsson, C. Wohlin","doi":"10.1109/ICSM.1998.738484","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738484","url":null,"abstract":"Software systems are often getting older than expected, and it is a challenge to try to make sure that they grow old gracefully. This implies that methods are needed to ensure that system components are possible to maintain. In this paper, the need to investigate, classify and study software components is emphasized. A classification method is proposed. It is based on classifying the software components into green, yellow and red components. The classification scheme is complemented with a discussion of suitable models to identify problematic components. The scheme and the models are illustrated in a minor case study to highlight the opportunities. The long term objective of the work is to define methods, models and metrics which are suitable to use in order to identify software components which have to be taken care of through either tailored processes (e.g. additional focus on verification and validation) or reengineering. The case study indicates that the long term objective is realistic and worthwhile.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129662928","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 47
期刊
Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1