首页 > 最新文献

2008 12th European Conference on Software Maintenance and Reengineering最新文献

英文 中文
Architecture Compliance Checking - Experiences from Successful Technology Transfer to Industry 架构遵从性检查——从成功的技术转移到工业的经验
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493299
J. Knodel, Dirk Muthig, Uwe Haury, G. Meier
New ideas and concepts emerging from research have to be accepted by industrial stakeholders before they are used in product development. In this paper, we present our lessons learned and experiences gained from transferring a reverse engineering technology - architecture compliance checking - to Testo AG, one of the world's leading suppliers of portable measurement devices for industry and emission business. Testo develops a product line of climate and flue gas measurement devices and uses architecture compliance checking as the means to ensure consistency between the specified reference architecture and the implemented products. After delivery of more than a dozen products to the market, we present how architecture compliance checking has been transferred and how it became one instrument for ensuring the high quality of Testo products.
从研究中产生的新想法和概念必须被工业利益相关者接受,然后才能用于产品开发。在本文中,我们介绍了我们从向德图公司(世界领先的便携式工业和排放测量设备供应商之一)转让逆向工程技术(架构合规性检查)中获得的经验教训。德图开发了一系列气候和烟气测量设备,并使用架构合规性检查作为确保指定参考架构与实施产品之间一致性的手段。在向市场交付了十多个产品之后,我们介绍了架构遵从性检查是如何转移的,以及它是如何成为确保Testo产品高质量的一种工具的。
{"title":"Architecture Compliance Checking - Experiences from Successful Technology Transfer to Industry","authors":"J. Knodel, Dirk Muthig, Uwe Haury, G. Meier","doi":"10.1109/CSMR.2008.4493299","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493299","url":null,"abstract":"New ideas and concepts emerging from research have to be accepted by industrial stakeholders before they are used in product development. In this paper, we present our lessons learned and experiences gained from transferring a reverse engineering technology - architecture compliance checking - to Testo AG, one of the world's leading suppliers of portable measurement devices for industry and emission business. Testo develops a product line of climate and flue gas measurement devices and uses architecture compliance checking as the means to ensure consistency between the specified reference architecture and the implemented products. After delivery of more than a dozen products to the market, we present how architecture compliance checking has been transferred and how it became one instrument for ensuring the high quality of Testo products.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117047759","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}
引用次数: 26
SOLIDFX: An Integrated Reverse Engineering Environment for C++ SOLIDFX: c++的集成逆向工程环境
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493339
A. Telea, L. Voinea
Many C+ + extractors exist that produce syntax trees, call graphs, and metrics from C++ code, yet few offer integrated querying, navigation, and visualization of source- code-level facts to the end-user. We present an interactive reverse engineering environment which supports reverse- engineering tasks on C/C++ code, e.g. set up the extraction process, apply user-written queries on the extracted facts, and visualize query results, much like classical forward- engineering IDEs do. We illustrate our environment with several examples of reverse-engineering analyses.
有许多c++提取器可以从c++代码中生成语法树、调用图和度量,但是很少有向最终用户提供源代码级事实的集成查询、导航和可视化。我们提供了一个交互式的逆向工程环境,它支持在C/ c++代码上完成逆向工程任务,例如设置提取过程,对提取的事实应用用户编写的查询,并将查询结果可视化,就像经典的正向工程ide一样。我们用几个逆向工程分析的例子来说明我们的环境。
{"title":"SOLIDFX: An Integrated Reverse Engineering Environment for C++","authors":"A. Telea, L. Voinea","doi":"10.1109/CSMR.2008.4493339","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493339","url":null,"abstract":"Many C+ + extractors exist that produce syntax trees, call graphs, and metrics from C++ code, yet few offer integrated querying, navigation, and visualization of source- code-level facts to the end-user. We present an interactive reverse engineering environment which supports reverse- engineering tasks on C/C++ code, e.g. set up the extraction process, apply user-written queries on the extracted facts, and visualize query results, much like classical forward- engineering IDEs do. We illustrate our environment with several examples of reverse-engineering analyses.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"136 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116076105","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
JDeodorant: Identification and Removal of Type-Checking Bad Smells 除臭剂:识别和去除类型检查不良气味
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493342
Nikolaos Tsantalis, Theodoros Chaikalis, A. Chatzigeorgiou
In this demonstration, we present an Eclipse plug-in that automatically identifies type-checking bad smells in Java source code, and resolves them by applying the "replace conditional with polymorphism" or "replace type code with state/strategy " refactorings. To the best of our knowledge there is a lack of tools that identify type-checking bad smells. Moreover, none of the state-of-the-art IDEs support the refactorings that resolve such kind of bad smells.
在这个演示中,我们展示了一个Eclipse插件,它可以自动识别Java源代码中的类型检查问题,并通过应用“用多态性替换条件”或“用状态/策略替换类型代码”重构来解决这些问题。据我们所知,目前还缺乏识别类型检查不良气味的工具。此外,最先进的ide都不支持解决这类问题的重构。
{"title":"JDeodorant: Identification and Removal of Type-Checking Bad Smells","authors":"Nikolaos Tsantalis, Theodoros Chaikalis, A. Chatzigeorgiou","doi":"10.1109/CSMR.2008.4493342","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493342","url":null,"abstract":"In this demonstration, we present an Eclipse plug-in that automatically identifies type-checking bad smells in Java source code, and resolves them by applying the \"replace conditional with polymorphism\" or \"replace type code with state/strategy \" refactorings. To the best of our knowledge there is a lack of tools that identify type-checking bad smells. Moreover, none of the state-of-the-art IDEs support the refactorings that resolve such kind of bad smells.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129193673","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}
引用次数: 215
Assessing the Support of ER and UML Class Diagrams during Maintenance Activities on Data Models 在数据模型的维护活动中评估ER和UML类图的支持
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493312
A. D. Lucia, C. Gravino, R. Oliveto, G. Tortora
We present the results of two controlled experiments carried out to compare the support given by the ER and UML class diagrams during the maintenance of data models. The experiments involved master and bachelor students performing maintenance tasks on data models represented by ER and UML class diagrams. The results reveal that the two notations give in general the same support. In particular, the correctness level achieved by a subject performing the task on data model represented by an ER diagram are comparable with the correctness level achieved by the same subject performing the task on a different data model represented by an UML class diagram. Moreover, by discriminating the levels of ability (high vs. low) and experience (graduate vs. undergraduate) of subjects we also provide some consideration about the influence of such factors on the correctness level achieved by subjects. In particular, we observe that UML class diagrams better support subjects with high ability than ER diagrams, while no difference can be observed considering subjects with low ability. Regarding the experience factor the results reveal no difference in the correctness level achieved by graduate and undergraduate students.
我们提供了两个受控实验的结果,以比较在数据模型维护期间由ER和UML类图提供的支持。实验涉及硕士和本科生对由ER和UML类图表示的数据模型执行维护任务。结果表明,这两种符号在一般情况下具有相同的支持。特别是,一个主体在ER图所表示的数据模型上执行任务所达到的正确性级别,与同一个主体在UML类图所表示的不同数据模型上执行任务所达到的正确性级别是可以比较的。此外,通过区分被试的能力水平(高与低)和经验水平(研究生与本科生),我们也提供了这些因素对被试达到的正确水平的影响的一些考虑。特别是,我们观察到UML类图比ER图更好地支持能力高的主体,而考虑能力低的主体则没有区别。在经验因素方面,研究生和本科生的正确程度没有差异。
{"title":"Assessing the Support of ER and UML Class Diagrams during Maintenance Activities on Data Models","authors":"A. D. Lucia, C. Gravino, R. Oliveto, G. Tortora","doi":"10.1109/CSMR.2008.4493312","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493312","url":null,"abstract":"We present the results of two controlled experiments carried out to compare the support given by the ER and UML class diagrams during the maintenance of data models. The experiments involved master and bachelor students performing maintenance tasks on data models represented by ER and UML class diagrams. The results reveal that the two notations give in general the same support. In particular, the correctness level achieved by a subject performing the task on data model represented by an ER diagram are comparable with the correctness level achieved by the same subject performing the task on a different data model represented by an UML class diagram. Moreover, by discriminating the levels of ability (high vs. low) and experience (graduate vs. undergraduate) of subjects we also provide some consideration about the influence of such factors on the correctness level achieved by subjects. In particular, we observe that UML class diagrams better support subjects with high ability than ER diagrams, while no difference can be observed considering subjects with low ability. Regarding the experience factor the results reveal no difference in the correctness level achieved by graduate and undergraduate students.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114351901","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
Decision Reuse in an Interactive Model Transformation 交互式模型转换中的决策重用
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493307
Mika Siikarla, Tarja Systä
Propagating incremental changes and maintaining traceability are challenges for interactive model transformations, i.e. ones that combine automation with user decisions. After evolutionary changes to the source models the transformations have to be rerun. Earlier decisions cannot be used directly, because they may have been affected by the changes. Re-doing or verifying each decision manually is error-prone and burdensome. We present a way to model user interaction for transformations that are well (but not fully) understood. We model each decision as a set of options and their consequences. Also, we model the decision context, i.e. the circumstances (including model elements) affecting the decision. When a transformation is run, user decisions and their context are recorded. After a model change, a decision can be safely reused without burdening the user, if its context has not changed. The context maps source model elements to a decision, and thus provides traceability across the decision.
传播增量变更和维护可追溯性是交互式模型转换的挑战,例如,将自动化与用户决策相结合的模型转换。在对源模型进行渐进式更改之后,必须重新运行转换。早先的决策不能直接使用,因为它们可能受到变更的影响。手动重新执行或验证每个决策很容易出错,而且很麻烦。我们提出了一种方法来为很好(但不是完全)理解的转换建模用户交互。我们将每个决策建模为一组选项及其结果。此外,我们对决策上下文进行建模,即影响决策的环境(包括模型元素)。当运行转换时,将记录用户决策及其上下文。在模型更改之后,如果其上下文没有更改,则可以安全地重用决策,而不会给用户带来负担。上下文将源模型元素映射到决策,从而提供跨决策的可跟踪性。
{"title":"Decision Reuse in an Interactive Model Transformation","authors":"Mika Siikarla, Tarja Systä","doi":"10.1109/CSMR.2008.4493307","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493307","url":null,"abstract":"Propagating incremental changes and maintaining traceability are challenges for interactive model transformations, i.e. ones that combine automation with user decisions. After evolutionary changes to the source models the transformations have to be rerun. Earlier decisions cannot be used directly, because they may have been affected by the changes. Re-doing or verifying each decision manually is error-prone and burdensome. We present a way to model user interaction for transformations that are well (but not fully) understood. We model each decision as a set of options and their consequences. Also, we model the decision context, i.e. the circumstances (including model elements) affecting the decision. When a transformation is run, user decisions and their context are recorded. After a model change, a decision can be safely reused without burdening the user, if its context has not changed. The context maps source model elements to a decision, and thus provides traceability across the decision.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134552652","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}
引用次数: 12
Reverse Engineering Software-Models of Component-Based Systems 基于组件系统的逆向工程软件模型
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493304
Landry Chouambe, Benjamin Klatt, K. Krogmann
An increasing number of software systems is developed using component technologies such as COM, CORBA, or EJB. Still, there is a lack of support to reverse engineer such systems. Existing approaches claim reverse engineering of components, but do not support composite components. Also, external dependencies such as required interfaces are not made explicit. Furthermore, relaxed component definitions are used, and obtained components are thus indistinguishable from modules or classes. We present an iterative reverse engineering approach that follows the widely used definition of components by Szyperski. It enables third-party reuse of components by explicitly stating their interfaces and supports composition of components. Additionally, components that are reverse engineered with the approach allow reasoning on properties of software architectures at the model level. For the approach, source code metrics are combined to recognize components. We discuss the selection of source code metrics and their interdependencies, which were explicitly taken into account. An implementation of the approach was successfully validated within four case studies. Additionally, a fifth case study shows the scalability of the approach for an industrial-size system.
越来越多的软件系统是使用组件技术开发的,例如COM、CORBA或EJB。不过,目前还缺乏对此类系统进行逆向工程的支持。现有的方法要求对组件进行逆向工程,但不支持复合组件。此外,外部依赖关系(如所需的接口)也没有明确表示。此外,使用了宽松的组件定义,因此获得的组件与模块或类无法区分。我们提出了一种迭代的逆向工程方法,它遵循了Szyperski广泛使用的组件定义。它通过显式地声明组件的接口来支持第三方重用组件,并支持组件的组合。此外,使用该方法进行逆向工程的组件允许在模型级别上对软件体系结构的属性进行推理。对于该方法,将源代码度量组合起来以识别组件。我们讨论了源代码度量的选择和它们的相互依赖关系,这些都被明确地考虑在内。在四个案例研究中成功地验证了该方法的实施。此外,第五个案例研究显示了该方法对于工业规模系统的可伸缩性。
{"title":"Reverse Engineering Software-Models of Component-Based Systems","authors":"Landry Chouambe, Benjamin Klatt, K. Krogmann","doi":"10.1109/CSMR.2008.4493304","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493304","url":null,"abstract":"An increasing number of software systems is developed using component technologies such as COM, CORBA, or EJB. Still, there is a lack of support to reverse engineer such systems. Existing approaches claim reverse engineering of components, but do not support composite components. Also, external dependencies such as required interfaces are not made explicit. Furthermore, relaxed component definitions are used, and obtained components are thus indistinguishable from modules or classes. We present an iterative reverse engineering approach that follows the widely used definition of components by Szyperski. It enables third-party reuse of components by explicitly stating their interfaces and supports composition of components. Additionally, components that are reverse engineered with the approach allow reasoning on properties of software architectures at the model level. For the approach, source code metrics are combined to recognize components. We discuss the selection of source code metrics and their interdependencies, which were explicitly taken into account. An implementation of the approach was successfully validated within four case studies. Additionally, a fifth case study shows the scalability of the approach for an industrial-size system.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132650170","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}
引用次数: 39
Automatic Support for the Migration Towards Aspects 自动支持向方面的迁移
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493331
M. Ceccato
Aspect oriented programming (AOP) has been proposed as a new programming paradigm. The originality in AOP is the aspect, a single modularization unit for all those functionalities that were originally spread across several modules and tangled with each other (called crosscutting concerns). Using an aspect, a crosscutting concern can be factored out into a single, separate unit. This paper summarizes a PhD thesis that presents an approach to automatize the migration of existing object oriented systems towards AOP. Different techniques are proposed to cope with the migration and assessed on a large software basis.
面向方面编程(AOP)作为一种新的编程范式被提出。AOP的独创性是方面,它是所有那些功能的单个模块化单元,这些功能最初分布在几个模块中,并且相互纠缠在一起(称为横切关注点)。使用方面,可以将横切关注点分解为单个独立的单元。本文总结了一篇博士论文,该论文提出了一种将现有面向对象系统自动化迁移到AOP的方法。提出了不同的技术来处理迁移,并在大型软件基础上进行评估。
{"title":"Automatic Support for the Migration Towards Aspects","authors":"M. Ceccato","doi":"10.1109/CSMR.2008.4493331","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493331","url":null,"abstract":"Aspect oriented programming (AOP) has been proposed as a new programming paradigm. The originality in AOP is the aspect, a single modularization unit for all those functionalities that were originally spread across several modules and tangled with each other (called crosscutting concerns). Using an aspect, a crosscutting concern can be factored out into a single, separate unit. This paper summarizes a PhD thesis that presents an approach to automatize the migration of existing object oriented systems towards AOP. Different techniques are proposed to cope with the migration and assessed on a large software basis.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"87 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122502554","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
Wrapper-based System Evolution Application to CODASYL to Relational Migration 从CODASYL到关系迁移的基于包装的系统演化应用
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493296
Anthony Cleve, J. Henrard, D. Roland, Jean-Luc Hainaut
The paper presents a tool-supported approach to legacy data-intensive systems migration. It particularly elaborates on the program conversion phase, for which the use of wrapping techniques is suggested. The approach is applied to a popular specific application, that is, the migration of a large COBOL system using a CODASYL database towards a relational database platform. The use of the methodology and tools is evaluated in the context of a real-size industrial migration project.
本文提出了一种工具支持的遗留数据密集型系统迁移方法。它特别详细阐述了程序转换阶段,建议使用包装技术。该方法应用于流行的特定应用程序,即使用CODASYL数据库的大型COBOL系统向关系数据库平台的迁移。方法和工具的使用在实际规模的工业迁移项目的背景下进行评估。
{"title":"Wrapper-based System Evolution Application to CODASYL to Relational Migration","authors":"Anthony Cleve, J. Henrard, D. Roland, Jean-Luc Hainaut","doi":"10.1109/CSMR.2008.4493296","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493296","url":null,"abstract":"The paper presents a tool-supported approach to legacy data-intensive systems migration. It particularly elaborates on the program conversion phase, for which the use of wrapping techniques is suggested. The approach is applied to a popular specific application, that is, the migration of a large COBOL system using a CODASYL database towards a relational database platform. The use of the methodology and tools is evaluated in the context of a real-size industrial migration project.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"149 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123781601","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
Use Case Redocumentation from GUI Event Traces 从GUI事件跟踪中重新记录用例
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493323
Michael Smit, Eleni Stroulia, Kenny Wong
Use case re-documentation is an important maintenance task. The implemented functionality of an application may not reflect original use cases. This discrepancy can create problems in downstream software activities, such as developing documentation and migrating to platforms adopting a service-oriented architecture (SOA). We present a methodology and a toolkit for re-documenting the use cases of interactive Java swing object-oriented applications. Our method collects execution traces of the application while experienced users interact with it. These traces are clustered according to the similarity of the user interface events, to identify families of task-specific execution scenarios. Finally, the traces in each cluster are aligned to produce usage scenarios and visualized.
用例重新文档化是一项重要的维护任务。应用程序的实现功能可能不反映原始用例。这种差异会在下游软件活动中产生问题,例如开发文档和迁移到采用面向服务的体系结构(SOA)的平台。我们提出了一种方法和工具包,用于重新记录交互式Java swing面向对象应用程序的用例。当有经验的用户与应用程序交互时,我们的方法收集应用程序的执行跟踪。根据用户界面事件的相似性对这些跟踪进行聚类,以确定特定于任务的执行场景族。最后,对每个集群中的跟踪进行对齐,以生成使用场景并进行可视化。
{"title":"Use Case Redocumentation from GUI Event Traces","authors":"Michael Smit, Eleni Stroulia, Kenny Wong","doi":"10.1109/CSMR.2008.4493323","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493323","url":null,"abstract":"Use case re-documentation is an important maintenance task. The implemented functionality of an application may not reflect original use cases. This discrepancy can create problems in downstream software activities, such as developing documentation and migrating to platforms adopting a service-oriented architecture (SOA). We present a methodology and a toolkit for re-documenting the use cases of interactive Java swing object-oriented applications. Our method collects execution traces of the application while experienced users interact with it. These traces are clustered according to the similarity of the user interface events, to identify families of task-specific execution scenarios. Finally, the traces in each cluster are aligned to produce usage scenarios and visualized.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"116 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132321941","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}
引用次数: 9
Test Blueprints - Exposing Side Effects in Execution Traces to Support Writing Unit Tests 测试蓝图——暴露执行跟踪中的副作用,以支持编写单元测试
Pub Date : 2008-04-01 DOI: 10.1109/CSMR.2008.4493303
Adrian Lienhard, Tudor Gîrba, O. Greevy, Oscar Nierstrasz
Writing unit tests for legacy systems is a key maintenance task. When writing tests for object-oriented programs, objects need to be set up and the expected effects of executing the unit under test need to be verified. If developers lack internal knowledge of a system, the task of writing tests is non-trivial. To address this problem, we propose an approach that exposes side effects detected in example runs of the system and uses these side effects to guide the developer when writing tests. We introduce a visualization called Test Blueprint, through which we identify what the required fixture is and what assertions are needed to verify the correct behavior of a unit under test. The dynamic analysis technique that underlies our approach is based on both tracing method executions and on tracking the flow of objects at runtime. To demonstrate the usefulness of our approach we present results from two case studies.
为遗留系统编写单元测试是一项关键的维护任务。在为面向对象的程序编写测试时,需要建立对象,并且需要验证执行被测单元的预期效果。如果开发人员缺乏系统的内部知识,那么编写测试的任务就很重要。为了解决这个问题,我们提出了一种方法,该方法暴露在系统的示例运行中检测到的副作用,并在编写测试时使用这些副作用来指导开发人员。我们引入了一个名为Test Blueprint的可视化工具,通过它我们可以确定所需的fixture是什么,以及需要哪些断言来验证被测单元的正确行为。作为我们方法基础的动态分析技术是基于跟踪方法执行和跟踪运行时的对象流。为了证明我们的方法的有效性,我们给出了两个案例研究的结果。
{"title":"Test Blueprints - Exposing Side Effects in Execution Traces to Support Writing Unit Tests","authors":"Adrian Lienhard, Tudor Gîrba, O. Greevy, Oscar Nierstrasz","doi":"10.1109/CSMR.2008.4493303","DOIUrl":"https://doi.org/10.1109/CSMR.2008.4493303","url":null,"abstract":"Writing unit tests for legacy systems is a key maintenance task. When writing tests for object-oriented programs, objects need to be set up and the expected effects of executing the unit under test need to be verified. If developers lack internal knowledge of a system, the task of writing tests is non-trivial. To address this problem, we propose an approach that exposes side effects detected in example runs of the system and uses these side effects to guide the developer when writing tests. We introduce a visualization called Test Blueprint, through which we identify what the required fixture is and what assertions are needed to verify the correct behavior of a unit under test. The dynamic analysis technique that underlies our approach is based on both tracing method executions and on tracking the flow of objects at runtime. To demonstrate the usefulness of our approach we present results from two case studies.","PeriodicalId":350838,"journal":{"name":"2008 12th European Conference on Software Maintenance and Reengineering","volume":"2004 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125618149","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}
引用次数: 13
期刊
2008 12th European Conference on Software Maintenance and Reengineering
全部 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