首页 > 最新文献

International Workshop on Principles of Software Evolution最新文献

英文 中文
Enhancement of CRD-based clone tracking 基于cd的克隆跟踪的增强
Pub Date : 2013-08-19 DOI: 10.1145/2501543.2501548
Yoshiki Higo, Keisuke Hotta, S. Kusumoto
Many researchers have conducted a variety of research related to clone evolution. In order to grasp how clones have evolved, clones must be tracked. However, conventional clone tracking techniques are not feasible to track clones if they moved to another location in the source code. Consequently, in this research, we propose a new clone tracking technique. The proposed technique is an enhanced version of clone tracking with clone region descriptor (CRD) proposed by Duala-Ekoko and Robillard. The proposed technique can track clones even if they moved to another location. We have implemented a software tool based on the proposed technique, and applied it to two open source systems. In the experiment, we confirmed that the proposed technique could track 44 clone groups, which the conventional CRD tracking could not track. The accuracy of the tracking for those clones was 91%.
许多研究者对克隆进化进行了各种各样的研究。为了了解克隆人是如何进化的,必须对克隆人进行追踪。然而,如果克隆移动到源代码中的另一个位置,传统的克隆跟踪技术就无法跟踪克隆。因此,在本研究中,我们提出了一种新的克隆跟踪技术。该技术是由Duala-Ekoko和Robillard提出的克隆区域描述符(CRD)的改进版本。这项技术可以追踪克隆体,即使它们转移到了另一个地方。我们基于所提出的技术实现了一个软件工具,并将其应用于两个开源系统。在实验中,我们证实了该技术可以跟踪44个克隆群体,而传统的CRD跟踪无法跟踪。这些克隆体的追踪准确率为91%。
{"title":"Enhancement of CRD-based clone tracking","authors":"Yoshiki Higo, Keisuke Hotta, S. Kusumoto","doi":"10.1145/2501543.2501548","DOIUrl":"https://doi.org/10.1145/2501543.2501548","url":null,"abstract":"Many researchers have conducted a variety of research related to clone evolution. In order to grasp how clones have evolved, clones must be tracked. However, conventional clone tracking techniques are not feasible to track clones if they moved to another location in the source code. Consequently, in this research, we propose a new clone tracking technique. The proposed technique is an enhanced version of clone tracking with clone region descriptor (CRD) proposed by Duala-Ekoko and Robillard. The proposed technique can track clones even if they moved to another location. We have implemented a software tool based on the proposed technique, and applied it to two open source systems. In the experiment, we confirmed that the proposed technique could track 44 clone groups, which the conventional CRD tracking could not track. The accuracy of the tracking for those clones was 91%.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"173 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116553359","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
Tracking performance failures with rizel 用rizel跟踪性能故障
Pub Date : 2013-08-19 DOI: 10.1145/2501543.2501549
Juan Pablo Sandoval Alcocer, Alexandre Bergel
Understanding and minimizing the impact of software changes on performance are both challenging and essential when developing software. Unfortunately, current code execution profilers do not offer efficient abstractions and adequate representations to keep track of performance across multiple versions. Consequently, understanding the cause of a slow execution stemming from a software evolution is often realized in an ad hoc fashion. We have designed Rizel, a code profiler that identifies the root of performance variations thanks to an expressive and intuitive visual representation. Rizel highlights variation of executions and time distribution between multiple software versions. Rizel is available for the Pharo programming language under the MIT License.
在开发软件时,理解并最小化软件变更对性能的影响既具有挑战性,又至关重要。不幸的是,当前的代码执行分析器不能提供有效的抽象和足够的表示来跟踪多个版本的性能。因此,理解源自软件演进的缓慢执行的原因通常是以一种特别的方式实现的。我们设计了Rizel,这是一个代码分析器,通过富有表现力和直观的可视化表示来识别性能变化的根源。Rizel强调了多个软件版本之间执行的变化和时间分布。Rizel在MIT许可下可用于Pharo编程语言。
{"title":"Tracking performance failures with rizel","authors":"Juan Pablo Sandoval Alcocer, Alexandre Bergel","doi":"10.1145/2501543.2501549","DOIUrl":"https://doi.org/10.1145/2501543.2501549","url":null,"abstract":"Understanding and minimizing the impact of software changes on performance are both challenging and essential when developing software. Unfortunately, current code execution profilers do not offer efficient abstractions and adequate representations to keep track of performance across multiple versions. Consequently, understanding the cause of a slow execution stemming from a software evolution is often realized in an ad hoc fashion. \u0000 We have designed Rizel, a code profiler that identifies the root of performance variations thanks to an expressive and intuitive visual representation. Rizel highlights variation of executions and time distribution between multiple software versions. Rizel is available for the Pharo programming language under the MIT License.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126326482","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}
引用次数: 3
An analysis of requirements evolution in open source projects: recommendations for issue trackers 开源项目中需求演变的分析:对问题跟踪器的建议
Pub Date : 2013-08-19 DOI: 10.1145/2501543.2501550
P. Heck, A. Zaidman
While requirements for open source projects originate from a variety of sources like e.g. mailing lists or blogs, typically, they eventually end up as feature requests in an issue tracking system. When analyzing how these issue trackers are used for requirements evolution, we witnessed a high percentage of duplicates in a number of high-prole projects. Further investigation of six open source projects and their users led us to a number of important observations and a categorization of the root causes of these duplicates. Based on this, we propose a set of improvements for future issue tracking systems.
虽然开源项目的需求来自各种各样的来源,比如邮件列表或博客,但通常情况下,它们最终会在问题跟踪系统中以特性请求的形式结束。在分析如何将这些问题跟踪器用于需求演变时,我们发现在许多重要的项目中存在很高比例的重复项。对六个开源项目及其用户的进一步调查使我们得到了许多重要的观察结果,并对这些重复的根本原因进行了分类。在此基础上,我们为未来的问题跟踪系统提出了一组改进。
{"title":"An analysis of requirements evolution in open source projects: recommendations for issue trackers","authors":"P. Heck, A. Zaidman","doi":"10.1145/2501543.2501550","DOIUrl":"https://doi.org/10.1145/2501543.2501550","url":null,"abstract":"While requirements for open source projects originate from a variety of sources like e.g. mailing lists or blogs, typically, they eventually end up as feature requests in an issue tracking system. When analyzing how these issue trackers are used for requirements evolution, we witnessed a high percentage of duplicates in a number of high-prole projects. Further investigation of six open source projects and their users led us to a number of important observations and a categorization of the root causes of these duplicates. Based on this, we propose a set of improvements for future issue tracking systems.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133227414","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
What can commit metadata tell us about design degradation? 提交元数据能告诉我们关于设计退化的什么信息?
Pub Date : 2013-08-19 DOI: 10.1145/2501543.2501547
G. Oliva, Igor Steinmacher, I. Wiese, M. Gerosa
Design degradation has long been assessed by means of structural analyses applied on successive versions of a software system. More recently, repository mining techniques have been developed in order to uncover rich historical information of software projects. In this paper, we leverage such information and propose an approach to assess design degradation that is programming language agnostic and relies almost exclusively on commit metadata. Our approach currently focuses on the assessment of two particular design smells: rigidity and fragility. Rigidity refer to designs that are difficult to change due to ripple effects and fragility refer to designs that tend to break in different areas every time a change is performed. We conducted an evaluation of our approach in the project Apache Maven 1 and the results indicated that our approach is feasible and that the project suffered from increasing fragility.
长期以来,通过对软件系统的连续版本进行结构分析来评估设计退化。最近,为了揭示软件项目丰富的历史信息,开发了存储库挖掘技术。在本文中,我们利用这些信息并提出了一种与编程语言无关且几乎完全依赖于提交元数据的方法来评估设计退化。我们的方法目前侧重于评估两种特定的设计气味:刚性和脆弱性。刚性指的是由于涟漪效应而难以改变的设计,脆弱性指的是每次进行更改时往往在不同区域破裂的设计。我们在Apache Maven 1项目中对我们的方法进行了评估,结果表明我们的方法是可行的,并且该项目遭受了越来越多的脆弱性。
{"title":"What can commit metadata tell us about design degradation?","authors":"G. Oliva, Igor Steinmacher, I. Wiese, M. Gerosa","doi":"10.1145/2501543.2501547","DOIUrl":"https://doi.org/10.1145/2501543.2501547","url":null,"abstract":"Design degradation has long been assessed by means of structural analyses applied on successive versions of a software system. More recently, repository mining techniques have been developed in order to uncover rich historical information of software projects. In this paper, we leverage such information and propose an approach to assess design degradation that is programming language agnostic and relies almost exclusively on commit metadata. Our approach currently focuses on the assessment of two particular design smells: rigidity and fragility. Rigidity refer to designs that are difficult to change due to ripple effects and fragility refer to designs that tend to break in different areas every time a change is performed. We conducted an evaluation of our approach in the project Apache Maven 1 and the results indicated that our approach is feasible and that the project suffered from increasing fragility.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"37 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125944484","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
Customizing model migrations by rule schemes 根据规则方案定制模型迁移
Pub Date : 2013-08-19 DOI: 10.1145/2501543.2501545
Florian Mantz, G. Taentzer, Yngve Lamo
Model-driven engineering (MDE) is a software engineering discipline focusing on models as the primary artifacts in the software development process while programs are mainly generated by means of model-to-code transformations. In particular, modeling languages tailored to specific application domains promise to increase the productivity and quality of software development. Nevertheless due to e.g. evolving requirements, modeling languages and their meta-models evolve which means that existing models have to be migrated correspondingly. In our approach, such co-evolutions are specified as related graph transformations ensuring well-typed model migration results. Based on our earlier work on co-transformations, we now consider the automatic deduction of migration rule schemes from given meta-model evolution rules. Rule schemes form the basis for user customizations on a high abstraction level. A rule scheme deduction algorithm is presented and several customized migration schemes for different co-evolution examples are discussed.
模型驱动工程(MDE)是一门软件工程学科,它将模型作为软件开发过程中的主要工件,而程序主要是通过模型到代码的转换来生成的。特别是,为特定应用领域量身定制的建模语言承诺提高软件开发的生产力和质量。然而,由于需求的不断发展,建模语言及其元模型也在不断发展,这意味着必须对现有模型进行相应的迁移。在我们的方法中,这种共同进化被指定为相关的图转换,以确保类型良好的模型迁移结果。基于我们早期关于协同转换的工作,我们现在考虑从给定的元模型演化规则中自动推导迁移规则方案。规则模式构成了高抽象级别上用户自定义的基础。提出了一种规则方案推导算法,并讨论了针对不同协同进化实例的自定义迁移方案。
{"title":"Customizing model migrations by rule schemes","authors":"Florian Mantz, G. Taentzer, Yngve Lamo","doi":"10.1145/2501543.2501545","DOIUrl":"https://doi.org/10.1145/2501543.2501545","url":null,"abstract":"Model-driven engineering (MDE) is a software engineering discipline focusing on models as the primary artifacts in the software development process while programs are mainly generated by means of model-to-code transformations. In particular, modeling languages tailored to specific application domains promise to increase the productivity and quality of software development. Nevertheless due to e.g. evolving requirements, modeling languages and their meta-models evolve which means that existing models have to be migrated correspondingly. In our approach, such co-evolutions are specified as related graph transformations ensuring well-typed model migration results. Based on our earlier work on co-transformations, we now consider the automatic deduction of migration rule schemes from given meta-model evolution rules. Rule schemes form the basis for user customizations on a high abstraction level. A rule scheme deduction algorithm is presented and several customized migration schemes for different co-evolution examples are discussed.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131983176","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}
引用次数: 3
Understanding the interactions between users and versions in multi-tenant systems 了解多租户系统中用户和版本之间的交互
Pub Date : 2013-08-19 DOI: 10.1145/2501543.2501551
Tiago Espinha, A. Zaidman, H. Groß
Multi-tenant systems represent a class of software-as-a-service (SaaS) applications in which several groups of users, i.e. the tenants, share the same resources. This resource sharing results in multiple business organizations using the same base application, yet, requiring specific adaptations or extensions for their specific business models. Each configuration must be tended to during evolution of a multi-tenant system, because the existing application is mended, or because new tenants request additional features. In order to facilitate the understanding of multi-tenant systems, we propose to use a runtime topology augmented with user and version information, to help understand usage patterns exhibited by tenants of the different components in the system. We introduce Serviz, our implementation of the augmented runtime topology, and evaluate it through a field user study to see to which extent Serviz aids in the analysis and understanding of a multi-tenant system.
多租户系统表示一类软件即服务(SaaS)应用程序,其中几组用户(即租户)共享相同的资源。这种资源共享导致多个业务组织使用相同的基本应用程序,但是需要针对其特定的业务模型进行特定的调整或扩展。在多租户系统的发展过程中,必须对每个配置进行处理,因为现有的应用程序需要修复,或者因为新的租户需要额外的功能。为了便于理解多租户系统,我们建议使用带有用户和版本信息的运行时拓扑,以帮助理解系统中不同组件的租户所显示的使用模式。我们介绍了增强运行时拓扑的实现——Serviz,并通过现场用户研究对其进行评估,以了解Serviz在多大程度上有助于分析和理解多租户系统。
{"title":"Understanding the interactions between users and versions in multi-tenant systems","authors":"Tiago Espinha, A. Zaidman, H. Groß","doi":"10.1145/2501543.2501551","DOIUrl":"https://doi.org/10.1145/2501543.2501551","url":null,"abstract":"Multi-tenant systems represent a class of software-as-a-service (SaaS) applications in which several groups of users, i.e. the tenants, share the same resources. \u0000 This resource sharing results in multiple business organizations using the same base application, yet, requiring specific adaptations or extensions for their specific business models. \u0000 Each configuration must be tended to during evolution of a multi-tenant system, because the existing application is mended, or because new tenants request additional features. \u0000 In order to facilitate the understanding of multi-tenant systems, we propose to use a runtime topology augmented with user and version information, to help understand usage patterns exhibited by tenants of the different components in the system. \u0000 We introduce Serviz, our implementation of the augmented runtime topology, and evaluate it through a field user study to see to which extent Serviz aids in the analysis and understanding of a multi-tenant system.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126565050","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}
引用次数: 5
Identifying clone removal opportunities based on co-evolution analysis 基于协同进化分析识别克隆移除机会
Pub Date : 2013-08-19 DOI: 10.1145/2501543.2501552
Yoshiki Higo, S. Kusumoto
Previous research efforts have proposed various techniques for supporting code clone removal. They identify removal candidates based on the states of the source code in the latest version. However, those techniques suggest many code clones that are not suited for removal in addition to appropriate candidates. That is because the presence of code clones do not necessarily motivate developers to remove them if they are stable and do not require simultaneous modifications. In this paper, we propose a new technique that identifies removal candidates based on past records of code modifications. By using the proposed technique, we can identify code clones that actually required simultaneous modifications in the past.
以前的研究工作已经提出了各种支持代码克隆移除的技术。它们根据最新版本中源代码的状态确定移除候选项。然而,除了合适的候选代码之外,这些技术还提出了许多不适合删除的代码克隆。这是因为如果代码克隆是稳定的并且不需要同时修改,那么它们的存在并不一定会促使开发人员删除它们。在本文中,我们提出了一种基于过去代码修改记录来识别移除候选项的新技术。通过使用建议的技术,我们可以识别在过去实际上需要同时修改的代码克隆。
{"title":"Identifying clone removal opportunities based on co-evolution analysis","authors":"Yoshiki Higo, S. Kusumoto","doi":"10.1145/2501543.2501552","DOIUrl":"https://doi.org/10.1145/2501543.2501552","url":null,"abstract":"Previous research efforts have proposed various techniques for supporting code clone removal. They identify removal candidates based on the states of the source code in the latest version. However, those techniques suggest many code clones that are not suited for removal in addition to appropriate candidates. That is because the presence of code clones do not necessarily motivate developers to remove them if they are stable and do not require simultaneous modifications. In this paper, we propose a new technique that identifies removal candidates based on past records of code modifications. By using the proposed technique, we can identify code clones that actually required simultaneous modifications in the past.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121298221","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
Applying lehman's laws to game evolution 将雷曼定律应用于游戏进化
Pub Date : 2013-08-19 DOI: 10.1145/2501543.2501546
Timo Nummenmaa, Annakaisa Kultima, Kati Alha, T. Mikkonen
Computer games are a genre of software systems that in many ways differs from more traditional applications. In particular, when designing games, the end result of game development resembles work of art rather than that of engineering, emphasizing the need for creativity and artistic abilities. However, as technology, tools, methods, and artifacts that are used in the development of games are to a large extent similar to those used in the development of more traditional system, games should conform to the basic laws of software, including software evolution. In this paper, we reflect the principles of software evolution distilled by Manny Lehman in the form of laws of software evolution to the game domain. We present how the laws can be interpreted and applied in games projects, and argue that many of the laws apply to many games, but not all laws apply to all games. The way the game is evolved especially has an effect on the applicable laws as changes in games can be emerging, reactive or pre-planned.
电脑游戏是一种软件系统,在许多方面不同于传统的应用程序。特别是在设计游戏时,游戏开发的最终结果更像是艺术作品,而不是工程作品,强调对创造力和艺术能力的需求。然而,由于游戏开发中使用的技术、工具、方法和工件在很大程度上与更传统的系统开发中使用的技术、工具、方法和工件相似,所以游戏应该遵循软件的基本规律,包括软件进化。本文将Manny Lehman提炼的软件进化原理以软件进化规律的形式反映到游戏领域。我们将阐述这些法则在游戏项目中的解释和应用,并指出许多法则适用于许多游戏,但并非所有法则都适用于所有游戏。游戏发展的方式尤其会对适用法则产生影响,因为游戏中的变化可能是新出现的、反应性的或预先计划好的。
{"title":"Applying lehman's laws to game evolution","authors":"Timo Nummenmaa, Annakaisa Kultima, Kati Alha, T. Mikkonen","doi":"10.1145/2501543.2501546","DOIUrl":"https://doi.org/10.1145/2501543.2501546","url":null,"abstract":"Computer games are a genre of software systems that in many ways differs from more traditional applications. In particular, when designing games, the end result of game development resembles work of art rather than that of engineering, emphasizing the need for creativity and artistic abilities. However, as technology, tools, methods, and artifacts that are used in the development of games are to a large extent similar to those used in the development of more traditional system, games should conform to the basic laws of software, including software evolution. In this paper, we reflect the principles of software evolution distilled by Manny Lehman in the form of laws of software evolution to the game domain. We present how the laws can be interpreted and applied in games projects, and argue that many of the laws apply to many games, but not all laws apply to all games. The way the game is evolved especially has an effect on the applicable laws as changes in games can be emerging, reactive or pre-planned.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115353986","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}
引用次数: 5
Visual identification of software evolution patterns 软件演化模式的可视化识别
Pub Date : 2007-09-03 DOI: 10.1145/1294948.1294956
Andrejs Jermakovics, M. Scotto, G. Succi
Software evolution plays a key role in the overall lifecycle of a software system. In this phase, software developers extend the capabilities and functionality of the system to meet new user requirements. However, the maintenance process could rapidly lead to phenomena of "source code deterioration". The possibility to early detect bad software evolution patterns represents a paramount opportunity to keep the application maintainable. In this paper we propose a combined visualization to identify software evolution patterns related to user requirements. Such visualization consists in showing the evolution metrics of a software system together with the implementation of its requirements. We also show some examples on how this visualization could help to identify some "common" evolution patterns.
软件进化在软件系统的整个生命周期中扮演着关键的角色。在这个阶段,软件开发人员扩展系统的能力和功能,以满足新的用户需求。然而,维护过程可能会迅速导致“源代码劣化”现象。早期检测不良软件演化模式的可能性代表了保持应用程序可维护性的重要机会。在本文中,我们提出了一种组合可视化来识别与用户需求相关的软件演进模式。这样的可视化包括显示软件系统的演进度量以及它的需求的实现。我们还展示了一些示例,说明这种可视化如何帮助识别一些“常见的”进化模式。
{"title":"Visual identification of software evolution patterns","authors":"Andrejs Jermakovics, M. Scotto, G. Succi","doi":"10.1145/1294948.1294956","DOIUrl":"https://doi.org/10.1145/1294948.1294956","url":null,"abstract":"Software evolution plays a key role in the overall lifecycle of a software system. In this phase, software developers extend the capabilities and functionality of the system to meet new user requirements. However, the maintenance process could rapidly lead to phenomena of \"source code deterioration\". The possibility to early detect bad software evolution patterns represents a paramount opportunity to keep the application maintainable. In this paper we propose a combined visualization to identify software evolution patterns related to user requirements. Such visualization consists in showing the evolution metrics of a software system together with the implementation of its requirements. We also show some examples on how this visualization could help to identify some \"common\" evolution patterns.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128886563","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
Using concept analysis to detect co-change patterns 使用概念分析来检测共变模式
Pub Date : 2007-09-03 DOI: 10.1145/1294948.1294970
Tudor Gîrba, Stéphane Ducasse, Adrian Kuhn, Radu Marinescu, D. Ratiu
Software systems need to change over time to cope with new requirements, and due to design decisions, the changes happen to crosscut the system's structure. Understanding how changes appear in the system can reveal hidden dependencies between different entities of the system. We propose the usage of concept analysis to identify groups of entities that change in the same way and in the same time. We apply our approach at different levels of abstraction (i.e., method, class, package) and we detect fine grained changes (i.e., statements were added in a class, but no method was added there). Concept analysis is a technique that identifies entities that have the same properties, but it requires manual inspection due to the large number of candidates it detects. We propose a heuristic that dramatically eliminate the false positives. We apply our approach on two case studies and we show how we can identify hidden dependencies and detect bad smells.
软件系统需要随着时间的推移而变化以应对新的需求,并且由于设计决策,这些变化发生在系统结构的横切上。了解系统中的变化是如何出现的,可以揭示系统不同实体之间隐藏的依赖关系。我们建议使用概念分析来识别以相同方式和相同时间变化的实体组。我们在不同的抽象层次(例如,方法、类、包)上应用我们的方法,并且我们检测细粒度的变化(例如,在类中添加了语句,但是没有在那里添加方法)。概念分析是一种识别具有相同属性的实体的技术,但由于需要检测大量的候选对象,因此需要人工检查。我们提出了一种启发式方法,可以显著地消除误报。我们将我们的方法应用于两个案例研究,并展示了我们如何识别隐藏的依赖关系和检测不良气味。
{"title":"Using concept analysis to detect co-change patterns","authors":"Tudor Gîrba, Stéphane Ducasse, Adrian Kuhn, Radu Marinescu, D. Ratiu","doi":"10.1145/1294948.1294970","DOIUrl":"https://doi.org/10.1145/1294948.1294970","url":null,"abstract":"Software systems need to change over time to cope with new requirements, and due to design decisions, the changes happen to crosscut the system's structure. Understanding how changes appear in the system can reveal hidden dependencies between different entities of the system. We propose the usage of concept analysis to identify groups of entities that change in the same way and in the same time. We apply our approach at different levels of abstraction (i.e., method, class, package) and we detect fine grained changes (i.e., statements were added in a class, but no method was added there). Concept analysis is a technique that identifies entities that have the same properties, but it requires manual inspection due to the large number of candidates it detects. We propose a heuristic that dramatically eliminate the false positives. We apply our approach on two case studies and we show how we can identify hidden dependencies and detect bad smells.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116173706","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
期刊
International Workshop on Principles of Software Evolution
全部 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