首页 > 最新文献

Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.最新文献

英文 中文
Some optimal object-based architectural features for corrective maintenance 用于纠正性维护的一些最佳的基于对象的体系结构特性
W. Evanco, J. Verner
We investigate the relationship between some characteristics of software architecture present at the top-level design stage and the resulting corrective maintainability of five Ada systems. Measures are developed for both internal and external complexity for the subset of packages, within our five projects, that were changed to correct a software fault. These measures involve the context coupling of packages and the number of visible declarations that can be exported by a package. A relationship establishing the optimal number of object couples as a function of the mean number of visible declarations is empirically estimated based on the faults contained within our projects. We find that the optimal number of object couples varies inversely with the mean number of visible declarations. When initially designing a system, or when making modifications to an existing system, this relationship can be used to provide guidance for choosing the most maintainable design among alternative designs.
我们研究了顶层设计阶段软件架构的一些特征与五个Ada系统的可维护性之间的关系。度量是为软件包子集的内部和外部复杂性而开发的,在我们的五个项目中,它们被更改为纠正软件错误。这些措施涉及包的上下文耦合和包可以导出的可见声明的数量。根据我们项目中包含的错误,经验地估计了建立对象对的最佳数量作为可见声明的平均数量的函数的关系。我们发现对象对的最佳数量与可见声明的平均数量成反比。在最初设计系统时,或者在对现有系统进行修改时,可以使用这种关系为在备选设计中选择最可维护的设计提供指导。
{"title":"Some optimal object-based architectural features for corrective maintenance","authors":"W. Evanco, J. Verner","doi":"10.1109/CSMR.2003.1192436","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192436","url":null,"abstract":"We investigate the relationship between some characteristics of software architecture present at the top-level design stage and the resulting corrective maintainability of five Ada systems. Measures are developed for both internal and external complexity for the subset of packages, within our five projects, that were changed to correct a software fault. These measures involve the context coupling of packages and the number of visible declarations that can be exported by a package. A relationship establishing the optimal number of object couples as a function of the mean number of visible declarations is empirically estimated based on the faults contained within our projects. We find that the optimal number of object couples varies inversely with the mean number of visible declarations. When initially designing a system, or when making modifications to an existing system, this relationship can be used to provide guidance for choosing the most maintainable design among alternative designs.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127452300","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
Fast symbolic evaluation of C/C++ preprocessing using conditional values 使用条件值的C/ c++预处理的快速符号计算
Mario Latendresse
C/C++ code relying on preprocessing can be quite complex to analyze. This is often due to free preprocessing variables set at compile time. In general, preprocessing selectively compile parts of the source code based on the values of preprocessing variables which may be free. In this case, the relations between these parts can only be represented by conditional expressions using the free variables. Traditional symbolic evaluation can be used to infer these expressions, but its best case time complexity is exponential. We present a new approach for symbolic evaluation that can efficiently compute these conditions by binding variables to conditional values and avoiding the path feasibility analysis of traditional symbolic evaluation. It infers the exact conditional expressions for which the lines of code are compiled and the (conditional) values of preprocessing variables at each point of the source code. Our prototype shows the approach as practical and scaleable to large C/C++ software.
依赖于预处理的C/ c++代码分析起来可能相当复杂。这通常是由于在编译时设置了自由的预处理变量。一般来说,预处理会根据可能是自由的预处理变量的值选择性地编译部分源代码。在这种情况下,这些部分之间的关系只能用使用自由变量的条件表达式来表示。传统的符号求值可以用来推断这些表达式,但其最佳情况下的时间复杂度是指数的。本文提出了一种新的符号求值方法,通过将变量绑定到条件值,避免了传统符号求值的路径可行性分析,从而有效地计算这些条件。它推断出编译代码行的确切条件表达式,以及源代码中每个点预处理变量的(条件)值。我们的原型表明,该方法是实用的,可扩展到大型C/ c++软件。
{"title":"Fast symbolic evaluation of C/C++ preprocessing using conditional values","authors":"Mario Latendresse","doi":"10.1109/CSMR.2003.1192425","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192425","url":null,"abstract":"C/C++ code relying on preprocessing can be quite complex to analyze. This is often due to free preprocessing variables set at compile time. In general, preprocessing selectively compile parts of the source code based on the values of preprocessing variables which may be free. In this case, the relations between these parts can only be represented by conditional expressions using the free variables. Traditional symbolic evaluation can be used to infer these expressions, but its best case time complexity is exponential. We present a new approach for symbolic evaluation that can efficiently compute these conditions by binding variables to conditional values and avoiding the path feasibility analysis of traditional symbolic evaluation. It infers the exact conditional expressions for which the lines of code are compiled and the (conditional) values of preprocessing variables at each point of the source code. Our prototype shows the approach as practical and scaleable to large C/C++ software.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114912645","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}
引用次数: 19
Full reuse maintenance process for reducing software degradation 减少软件退化的完全重用维护过程
M. T. Baldassarre, A. Bianchi, D. Caivano, C. A. Visaggio
It is known that during maintenance activities system quality tends to degrade. This work presents a field investigation carried out on two industrial projects with the aim of comparing the effectiveness of the "full reuse" maintenance process with an "iterative enhancement" one. The results of the work confirm the greater effectiveness of the first process in slowing down the degradation of software quality. Furthermore, through the analysis of both process and product metrics, we show that monitoring maintenance performances is a poor indicator of system quality degradation. In fact, when the reduction of maintenance performance becomes large, quality has degraded considerably and to a point that ordinary maintenance may no longer be considered.
众所周知,在维护活动期间,系统质量趋于退化。这项工作提出了对两个工业项目进行的实地调查,目的是比较“完全重用”维护过程与“迭代增强”维护过程的有效性。工作的结果证实了第一个过程在减缓软件质量退化方面更有效。此外,通过对过程和产品度量的分析,我们表明监控维护性能是系统质量退化的一个糟糕指标。事实上,当维修性能的降低变得很大时,质量就会大大下降,以至于可能不再考虑进行普通维修。
{"title":"Full reuse maintenance process for reducing software degradation","authors":"M. T. Baldassarre, A. Bianchi, D. Caivano, C. A. Visaggio","doi":"10.1109/CSMR.2003.1192437","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192437","url":null,"abstract":"It is known that during maintenance activities system quality tends to degrade. This work presents a field investigation carried out on two industrial projects with the aim of comparing the effectiveness of the \"full reuse\" maintenance process with an \"iterative enhancement\" one. The results of the work confirm the greater effectiveness of the first process in slowing down the degradation of software quality. Furthermore, through the analysis of both process and product metrics, we show that monitoring maintenance performances is a poor indicator of system quality degradation. In fact, when the reduction of maintenance performance becomes large, quality has degraded considerably and to a point that ordinary maintenance may no longer be considered.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128246052","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
Revitalizing modifiability of legacy assets 振兴遗留资产的可修改性
N. Veerman
We discuss the modifiability of Cobol legacy code and propose an approach to improving the modifiability using automatic restructuring transformations. We developed an algorithm that allows application of these transformations to large industrial Cobol systems. We demonstrate the adaptability of the transformations by extending them with new transformation patterns. Two case studies (nearly 3 million lines of code in total) with real-life Cobol programs show the large-scale application of the transformations.
我们讨论了Cobol遗留代码的可修改性,并提出了一种使用自动重构转换来提高可修改性的方法。我们开发了一种算法,允许将这些转换应用于大型工业Cobol系统。我们通过使用新的转换模式扩展转换来证明转换的适应性。两个实际Cobol程序的案例研究(总共近300万行代码)展示了这些转换的大规模应用。
{"title":"Revitalizing modifiability of legacy assets","authors":"N. Veerman","doi":"10.1109/CSMR.2003.1192407","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192407","url":null,"abstract":"We discuss the modifiability of Cobol legacy code and propose an approach to improving the modifiability using automatic restructuring transformations. We developed an algorithm that allows application of these transformations to large industrial Cobol systems. We demonstrate the adaptability of the transformations by extending them with new transformation patterns. Two case studies (nearly 3 million lines of code in total) with real-life Cobol programs show the large-scale application of the transformations.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128562226","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}
引用次数: 36
Unions of slices are not slices 切片的并并不是切片
A. D. Lucia, M. Harman, R. Hierons, J. Krinke
Many approaches to slicing rely upon the 'fact' that the union of two static slices is a valid slice. It is known that static slices constructed using program dependence graph algorithms are valid slices (Reps and Yang, 1988). However, this is not true for other forms of slicing. For example, it has been established that the union of two dynamic slices is not necessarily a valid dynamic slice (Hall, 1995). In this paper this result is extended to show that the union of two static slices is not necessarily a valid slice, based on Weiser's definition of a (static) slice. We also analyse the properties that make the union of different forms of slices a valid slice.
许多切片方法依赖于两个静态切片的并集是有效切片这一“事实”。众所周知,使用程序依赖图算法构建的静态切片是有效的切片(Reps和Yang, 1988)。然而,对于其他形式的切片就不是这样了。例如,已经确定两个动态切片的并集不一定是有效的动态切片(Hall, 1995)。本文基于Weiser对(静态)片的定义,推广了这一结果,证明两个静态片的并集不一定是有效片。我们还分析了使不同形式的片的并集成为有效片的性质。
{"title":"Unions of slices are not slices","authors":"A. D. Lucia, M. Harman, R. Hierons, J. Krinke","doi":"10.1109/CSMR.2003.1192445","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192445","url":null,"abstract":"Many approaches to slicing rely upon the 'fact' that the union of two static slices is a valid slice. It is known that static slices constructed using program dependence graph algorithms are valid slices (Reps and Yang, 1988). However, this is not true for other forms of slicing. For example, it has been established that the union of two dynamic slices is not necessarily a valid dynamic slice (Hall, 1995). In this paper this result is extended to show that the union of two static slices is not necessarily a valid slice, based on Weiser's definition of a (static) slice. We also analyse the properties that make the union of different forms of slices a valid slice.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128978000","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}
引用次数: 33
A debugging strategy based on requirements of testing 一种基于测试需求的调试策略
M. Chaim, José Carlos Maldonado, M. Jino
Testing and debugging are activities that consume a significant amount of the software quality and maintenance budget. To reduce such cost, the use of testing information for debugging purposes has been advocated In general, heuristics are used to select structural testing requirements (nodes, branches, and definition use associations) more closely related to the manifestation of failures which are then mapped into pieces of code. The problem with this approach is that it relies only on a static information-a fragment of code. We introduce a strategy for fault localization based on the investigation of indications (or hints) provided at run-time by data-flow testing requirements. The intuition is that the selected data-flow testing requirements may fail to hit the fault site but they still provide useful information for fault localization. The strategy-called Debugging strategy based on Requirements of Testing (DRT)-is targeted to such situations. The strategy's novelty and attractiveness are threefold: (i) it focuses on dynamic information related to testing data; (ii) it can be implemented in state-of-the-practice symbolic debuggers with limited overhead; and (iii) it utilizes algorithms that consume constant memory and are linear with respect to the number of branches in the program. The paper presents a case study which shows that our intuition is valid (for the subject program) and a proof-of-concept tool that implements the strategy.
测试和调试是消耗大量软件质量和维护预算的活动。为了减少这样的成本,为了调试目的而使用测试信息已经被提倡。通常,启发式被用来选择与故障表现更密切相关的结构测试需求(节点、分支和定义使用关联),然后将其映射到代码片段中。这种方法的问题在于它只依赖于静态信息——代码片段。我们介绍了一种基于数据流测试需求在运行时提供的指示(或提示)调查的故障定位策略。直觉是,所选择的数据流测试需求可能无法到达故障点,但它们仍然为故障定位提供有用的信息。称为基于测试需求(DRT)的调试策略就是针对这种情况的。该策略的新颖性和吸引力有三个方面:(i)它侧重于与测试数据相关的动态信息;(ii)它可以在最实用的符号调试器中实现,开销有限;(iii)它利用的算法消耗恒定的内存,并且与程序中的分支数量呈线性关系。本文提出了一个案例研究,表明我们的直觉是有效的(对于主题程序),并提供了实现该策略的概念验证工具。
{"title":"A debugging strategy based on requirements of testing","authors":"M. Chaim, José Carlos Maldonado, M. Jino","doi":"10.1109/CSMR.2003.1192424","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192424","url":null,"abstract":"Testing and debugging are activities that consume a significant amount of the software quality and maintenance budget. To reduce such cost, the use of testing information for debugging purposes has been advocated In general, heuristics are used to select structural testing requirements (nodes, branches, and definition use associations) more closely related to the manifestation of failures which are then mapped into pieces of code. The problem with this approach is that it relies only on a static information-a fragment of code. We introduce a strategy for fault localization based on the investigation of indications (or hints) provided at run-time by data-flow testing requirements. The intuition is that the selected data-flow testing requirements may fail to hit the fault site but they still provide useful information for fault localization. The strategy-called Debugging strategy based on Requirements of Testing (DRT)-is targeted to such situations. The strategy's novelty and attractiveness are threefold: (i) it focuses on dynamic information related to testing data; (ii) it can be implemented in state-of-the-practice symbolic debuggers with limited overhead; and (iii) it utilizes algorithms that consume constant memory and are linear with respect to the number of branches in the program. The paper presents a case study which shows that our intuition is valid (for the subject program) and a proof-of-concept tool that implements the strategy.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124792050","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}
引用次数: 1
Weaving aspects into C++ applications for validation of temporal invariants 将方面编织到c++应用程序中以验证时间不变量
T. Gibbs, B. Malloy
In this paper, we describe temporal invariants, which are class invariants that are qualified by the operators eventually, always, never, or already. Temporal invariants can capture assertions that may not be valid initially but, as the program continues, must eventually become valid. Moreover, temporal invariants can indicate references to memory that should eventually be deallocated. To facilitate incorporation of temporal invariants as a maintenance or reengineering activity, we weave invariants into the system as aspects. In our case study of a C++ system, the aspects are woven into join points using policies. We investigate the effectiveness of temporal invariants and we compare the performance of our aspect-oriented implementation with several other approaches.
在本文中,我们描述了时态不变量,它是一类不变量,由操作符最终、总是、永远或已经限定。时间不变量可以捕获最初可能无效,但随着程序的继续,最终必须有效的断言。此外,时间不变量可以指示对最终应该被释放的内存的引用。为了便于将时间不变量作为维护或再工程活动合并,我们将不变量作为方面组织到系统中。在我们的c++系统案例研究中,使用策略将方面编织到连接点中。我们研究了时间不变量的有效性,并将我们的面向方面实现与其他几种方法的性能进行了比较。
{"title":"Weaving aspects into C++ applications for validation of temporal invariants","authors":"T. Gibbs, B. Malloy","doi":"10.1109/CSMR.2003.1192433","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192433","url":null,"abstract":"In this paper, we describe temporal invariants, which are class invariants that are qualified by the operators eventually, always, never, or already. Temporal invariants can capture assertions that may not be valid initially but, as the program continues, must eventually become valid. Moreover, temporal invariants can indicate references to memory that should eventually be deallocated. To facilitate incorporation of temporal invariants as a maintenance or reengineering activity, we weave invariants into the system as aspects. In our case study of a C++ system, the aspects are woven into join points using policies. We investigate the effectiveness of temporal invariants and we compare the performance of our aspect-oriented implementation with several other approaches.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124207928","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}
引用次数: 20
Refactoring browser with preprocessor 用预处理器重构浏览器
M. Vittek
This paper presents Xrefactory a refactoring browser for C and Java languages. The paper discusses a way how refactoring browsers can thresh-passe non-trivial complications introduced by the C pre-preprocessor Resolving those problems is the next step toward so long expected refactoring browser for C++. Our solution is based on practical implementation and exemplified on renaming refactorings.
本文介绍了Xrefactory,一个用于C和Java语言的重构浏览器。本文讨论了一种重构浏览器的方法,如何通过C预预处理程序引入的重要复杂性。解决这些问题是人们期待已久的c++浏览器重构的下一步。我们的解决方案基于实际实现,并以重命名重构为例。
{"title":"Refactoring browser with preprocessor","authors":"M. Vittek","doi":"10.1109/CSMR.2003.1192417","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192417","url":null,"abstract":"This paper presents Xrefactory a refactoring browser for C and Java languages. The paper discusses a way how refactoring browsers can thresh-passe non-trivial complications introduced by the C pre-preprocessor Resolving those problems is the next step toward so long expected refactoring browser for C++. Our solution is based on practical implementation and exemplified on renaming refactorings.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"16 5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130432234","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}
引用次数: 66
CodeCrawler-lessons learned in building a software visualization tool codecrawler——构建软件可视化工具的经验教训
Michele Lanza
Software visualization tools face many challenges in terms of their implementation, including scalability, usability, adaptability, and durability. Such tools, like many other research tools, tend to have a short life cycle and are vulnerable to software evolution processes because of the complex problem domain and the constantly changing requirements which are dictated by research goals. In this paper we discuss the implementation of the software visualization tool CodeCrawler according to five criteria, namely the overall architecture, the internal architecture, the visualization engine, the metamodel and the interactive facilities. This discussion generates implementation recommendations and design guidelines that hold for our tool and the class of tools its stands for. We then also extract common design guidelines and recommendations that apply for other software visualization and general reverse engineering tools as well, and hope that these insights can be used fruitfully by other researchers in this field.
软件可视化工具在实现方面面临许多挑战,包括可伸缩性、可用性、适应性和持久性。这些工具,像许多其他研究工具一样,往往具有较短的生命周期,并且由于复杂的问题域和由研究目标决定的不断变化的需求,容易受到软件进化过程的影响。本文从整体体系结构、内部体系结构、可视化引擎、元模型和交互工具五个方面讨论了软件可视化工具CodeCrawler的实现。这个讨论产生了支持我们的工具和它所代表的工具类的实现建议和设计指南。然后,我们还提取了适用于其他软件可视化和一般逆向工程工具的通用设计指南和建议,并希望这些见解可以被该领域的其他研究人员有效地使用。
{"title":"CodeCrawler-lessons learned in building a software visualization tool","authors":"Michele Lanza","doi":"10.1109/CSMR.2003.1192450","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192450","url":null,"abstract":"Software visualization tools face many challenges in terms of their implementation, including scalability, usability, adaptability, and durability. Such tools, like many other research tools, tend to have a short life cycle and are vulnerable to software evolution processes because of the complex problem domain and the constantly changing requirements which are dictated by research goals. In this paper we discuss the implementation of the software visualization tool CodeCrawler according to five criteria, namely the overall architecture, the internal architecture, the visualization engine, the metamodel and the interactive facilities. This discussion generates implementation recommendations and design guidelines that hold for our tool and the class of tools its stands for. We then also extract common design guidelines and recommendations that apply for other software visualization and general reverse engineering tools as well, and hope that these insights can be used fruitfully by other researchers in this field.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129238860","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}
引用次数: 104
Exploring differences in exchange formats-tool support and case studies 探索交换格式的差异——工具支持和案例研究
Juanjuan Jiang, Tarja Systä
XML-based markup languages are widely used, e.g., for information exchange and as file formats in various software development and exploration tools. Still, using a metalanguage, such as XML, does not guarantee tool interoperability. The particular XML-based languages used by different tools often vary. They can, none the less, be processed by the same methods and tools. In most UML-based software development tools, support for tool interoperability is provided by using OMG's XML Metadata Interchange (XMI) as a file format. However, in many cases XMI has turned out to be insufficient for storing all information from the UML models. Thus the tool vendors typically extend and/or modify the language so introduce their own XMI dialect. This, in turn, means that the tool interoperability is sacrificed. We discuss a method and a tool called DTD-compaper for exploring differences in exchange formats. DTD-compaper can, in general, be used to identify differences in grammars of XML-based languages. Further, we discuss three different case studies in which we used DTD-comparer. We first compare few commonly used XMI dialects. We further use the tool for comparing different versions of the Graph eXchange Language (GXL).
基于xml的标记语言被广泛使用,例如,用于信息交换和作为各种软件开发和探索工具中的文件格式。但是,使用元语言(如XML)并不能保证工具的互操作性。不同工具使用的特定的基于xml的语言通常各不相同。然而,它们可以用同样的方法和工具来处理。在大多数基于uml的软件开发工具中,通过使用OMG的XML元数据交换(XML Metadata Interchange, XML)作为文件格式来提供对工具互操作性的支持。然而,在许多情况下,xml不足以存储来自UML模型的所有信息。因此,工具供应商通常扩展和/或修改语言,以引入他们自己的xml方言。反过来,这意味着牺牲了工具的互操作性。我们讨论了一种方法和一个名为DTD-compaper的工具,用于探索交换格式的差异。一般来说,dtd比较器可用于识别基于xml的语言的语法差异。此外,我们讨论了使用DTD-comparer的三个不同的案例研究。我们首先比较几种常用的xml方言。我们进一步使用该工具来比较不同版本的图形交换语言(GXL)。
{"title":"Exploring differences in exchange formats-tool support and case studies","authors":"Juanjuan Jiang, Tarja Systä","doi":"10.1109/CSMR.2003.1192448","DOIUrl":"https://doi.org/10.1109/CSMR.2003.1192448","url":null,"abstract":"XML-based markup languages are widely used, e.g., for information exchange and as file formats in various software development and exploration tools. Still, using a metalanguage, such as XML, does not guarantee tool interoperability. The particular XML-based languages used by different tools often vary. They can, none the less, be processed by the same methods and tools. In most UML-based software development tools, support for tool interoperability is provided by using OMG's XML Metadata Interchange (XMI) as a file format. However, in many cases XMI has turned out to be insufficient for storing all information from the UML models. Thus the tool vendors typically extend and/or modify the language so introduce their own XMI dialect. This, in turn, means that the tool interoperability is sacrificed. We discuss a method and a tool called DTD-compaper for exploring differences in exchange formats. DTD-compaper can, in general, be used to identify differences in grammars of XML-based languages. Further, we discuss three different case studies in which we used DTD-comparer. We first compare few commonly used XMI dialects. We further use the tool for comparing different versions of the Graph eXchange Language (GXL).","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123109710","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}
引用次数: 14
期刊
Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.
全部 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