首页 > 最新文献

2020 IEEE/ACM International Conference on Technical Debt (TechDebt)最新文献

英文 中文
Skuld: A self-learning tool for impact-driven technical debt management skld:用于影响驱动的技术债务管理的自我学习工具
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388626
Josep Burgaya Pujols, Pieter Bas, Silverio Martínez-Fernández, A. Martini, Adam Trendowicz
As the development progresses, software projects tend to accumulate Technical Debt and become harder to maintain. Multiple tools exist with the mission to help practitioners to better manage Technical Debt. Despite this progress, there is a lack of tools providing actionable and self-learned suggestions to practitioners aimed at mitigating the impact of Technical Debt in real projects. We aim to create a data-driven, lightweight, and self-learning tool positioning highly impactful refactoring proposals on a Jira backlog. Bearing this goal in mind, the first two authors have founded a startup, called Skuld.ai, with the vision of becoming the go-to software renovation company. In this tool paper, we present the software architecture and demonstrate the main functionalities of our tool. It has been showcased to practitioners, receiving positive feedback. Currently, its release to the market is underway thanks to an industry-research institute collaboration with Fraunhofer IESE to incorporate self-learning technical debt capabilities.
随着开发的进展,软件项目倾向于积累技术债务并变得更难维护。有多种工具的使命是帮助实践者更好地管理技术债务。尽管取得了这样的进展,但是仍然缺乏工具为从业者提供可操作的和自我学习的建议,这些建议旨在减轻实际项目中技术债务的影响。我们的目标是创建一个数据驱动的、轻量级的、自我学习的工具,在Jira待办事项列表中定位具有高度影响力的重构建议。带着这个目标,前两位作者创立了一家名为Skuld的初创公司。它的愿景是成为软件创新的首选公司。在本文中,我们介绍了该工具的软件体系结构,并演示了该工具的主要功能。它已经展示给从业者,得到了积极的反馈。目前,由于一个行业研究机构与Fraunhofer IESE合作,将自学技术债务功能纳入其中,它正在向市场发布。
{"title":"Skuld: A self-learning tool for impact-driven technical debt management","authors":"Josep Burgaya Pujols, Pieter Bas, Silverio Martínez-Fernández, A. Martini, Adam Trendowicz","doi":"10.1145/3387906.3388626","DOIUrl":"https://doi.org/10.1145/3387906.3388626","url":null,"abstract":"As the development progresses, software projects tend to accumulate Technical Debt and become harder to maintain. Multiple tools exist with the mission to help practitioners to better manage Technical Debt. Despite this progress, there is a lack of tools providing actionable and self-learned suggestions to practitioners aimed at mitigating the impact of Technical Debt in real projects. We aim to create a data-driven, lightweight, and self-learning tool positioning highly impactful refactoring proposals on a Jira backlog. Bearing this goal in mind, the first two authors have founded a startup, called Skuld.ai, with the vision of becoming the go-to software renovation company. In this tool paper, we present the software architecture and demonstrate the main functionalities of our tool. It has been showcased to practitioners, receiving positive feedback. Currently, its release to the market is underway thanks to an industry-research institute collaboration with Fraunhofer IESE to incorporate self-learning technical debt capabilities.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130659501","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
An Empirical Study on Self-Fixed Technical Debt 自定技术债务的实证研究
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388621
Jie Tan, Daniel Feitosa, P. Avgeriou
Technical Debt (TD) can be paid back either by those that incurred it or by others. We call the former self-fixed TD, and it is particularly effective, as developers are experts in their own code and are best-suited to fix the corresponding TD issues. To what extent is TD self-fixed, which types of TD are more likely to be self-fixed and is the remediation time of self-fixed TD shorter than non-self-fixed TD? This paper attempts to answer these questions. It reports on an empirical study that analyzes the self-fixed issues of five types of TD (i.e., Code, Defect, Design, Documentation and Test), captured via static analysis, in more than 17,000 commits from 20 Python projects of the Apache Software Foundation. The results show that more than two thirds of the issues are self-fixed and that the self-fixing rate is negatively correlated with the number of commits, developers and project size. Furthermore, the survival time of self-fixed issues is generally shorter than non-self-fixed issues. Moreover, the majority of Defect Debt tends to be self-fixed and has a shorter survival time, while Test Debt and Design Debt are likely to be fixed by other developers. These results can benefit both researchers and practitioners by aiding the prioritization of TD remediation activities within development teams, and by informing the development of TD management tools.
技术债务(TD)可以由产生技术债务的人或其他人偿还。我们称前者为自修复TD,它特别有效,因为开发人员是他们自己代码的专家,最适合修复相应的TD问题。TD在多大程度上是自固定的,哪些类型的TD更有可能是自固定的,自固定TD的修复时间是否比非自固定TD短?本文试图回答这些问题。它报告了一项实证研究,该研究分析了五种类型的TD(即代码、缺陷、设计、文档和测试)的自修复问题,这些问题是通过静态分析捕获的,来自Apache软件基金会的20个Python项目的17,000多个提交。结果表明,超过三分之二的问题是自修复的,自修复率与提交数量、开发人员和项目规模呈负相关。此外,自修复问题的生存时间通常比非自修复问题短。此外,大多数缺陷债倾向于自我修复,并且具有较短的生存时间,而测试债和设计债可能由其他开发人员修复。这些结果可以通过帮助开发团队中TD补救活动的优先级排序,并通过通知TD管理工具的开发,从而使研究人员和实践者受益。
{"title":"An Empirical Study on Self-Fixed Technical Debt","authors":"Jie Tan, Daniel Feitosa, P. Avgeriou","doi":"10.1145/3387906.3388621","DOIUrl":"https://doi.org/10.1145/3387906.3388621","url":null,"abstract":"Technical Debt (TD) can be paid back either by those that incurred it or by others. We call the former self-fixed TD, and it is particularly effective, as developers are experts in their own code and are best-suited to fix the corresponding TD issues. To what extent is TD self-fixed, which types of TD are more likely to be self-fixed and is the remediation time of self-fixed TD shorter than non-self-fixed TD? This paper attempts to answer these questions. It reports on an empirical study that analyzes the self-fixed issues of five types of TD (i.e., Code, Defect, Design, Documentation and Test), captured via static analysis, in more than 17,000 commits from 20 Python projects of the Apache Software Foundation. The results show that more than two thirds of the issues are self-fixed and that the self-fixing rate is negatively correlated with the number of commits, developers and project size. Furthermore, the survival time of self-fixed issues is generally shorter than non-self-fixed issues. Moreover, the majority of Defect Debt tends to be self-fixed and has a shorter survival time, while Test Debt and Design Debt are likely to be fixed by other developers. These results can benefit both researchers and practitioners by aiding the prioritization of TD remediation activities within development teams, and by informing the development of TD management tools.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125025082","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
Carrot and Stick approaches when managing Technical Debt 管理技术债务时采用胡萝卜加大棒的方法
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388619
Terese Besker, A. Martini, J. Bosch
When developing software, it is vitally important to keep the level of technical debt down since it is well established from several studies that technical debt can, e.g., lower the development productivity, decrease the developers’ morale, and compromise the overall quality of the software. However, even if researchers and practitioners working in today’s software development industry are quite familiar with the concept of technical debt and its related negative consequences, there has been no empirical research focusing specifically on how software managers actively communicate and manage the need to keep the level of technical debt as low as possible.This paper aims to explore how software companies encourage and reward practitioners for actively keeping the level of technical debt down and also whether the companies use any forcing or penalizing initiatives when managing technical debt.This paper reports the results of both an online web-survey provided quantitative data from 258 participants and follow-up interviews with 32 industrial software practitioners. The findings show that having a TD management strategy can significantly impact the amount of TD in the software. When surveying how commonly used different TD management strategies are, we found that only the encouraging strategy is, to some extent, adopted in today’s’ software industry. This study also provides a model describing the four assessed strategies by presenting its strategies and tactics, together with recommendations on how they could be operationalized in today’s software companies.
当开发软件时,保持技术债务的水平是至关重要的,因为从一些研究中可以很好地确定技术债务可以,例如,降低开发生产力,降低开发人员的士气,并损害软件的整体质量。然而,即使在今天的软件开发行业中工作的研究人员和实践者非常熟悉技术债务的概念及其相关的负面后果,也没有实证研究专门关注软件经理如何积极地沟通和管理保持技术债务水平尽可能低的需求。本文旨在探讨软件公司如何鼓励和奖励积极保持技术债务水平较低的从业人员,以及公司在管理技术债务时是否使用任何强制或惩罚计划。本文报告了一项在线网络调查的结果,该调查提供了258名参与者的定量数据,并对32名工业软件从业者进行了后续访谈。研究结果表明,拥有一个TD管理策略可以显著影响软件中TD的数量。在调查不同的TD管理策略的使用情况时,我们发现在当今的软件行业中,在某种程度上只有鼓励策略被采用。本研究还提供了一个模型,通过展示其战略和战术来描述四种评估战略,以及如何在当今的软件公司中实施这些战略的建议。
{"title":"Carrot and Stick approaches when managing Technical Debt","authors":"Terese Besker, A. Martini, J. Bosch","doi":"10.1145/3387906.3388619","DOIUrl":"https://doi.org/10.1145/3387906.3388619","url":null,"abstract":"When developing software, it is vitally important to keep the level of technical debt down since it is well established from several studies that technical debt can, e.g., lower the development productivity, decrease the developers’ morale, and compromise the overall quality of the software. However, even if researchers and practitioners working in today’s software development industry are quite familiar with the concept of technical debt and its related negative consequences, there has been no empirical research focusing specifically on how software managers actively communicate and manage the need to keep the level of technical debt as low as possible.This paper aims to explore how software companies encourage and reward practitioners for actively keeping the level of technical debt down and also whether the companies use any forcing or penalizing initiatives when managing technical debt.This paper reports the results of both an online web-survey provided quantitative data from 258 participants and follow-up interviews with 32 industrial software practitioners. The findings show that having a TD management strategy can significantly impact the amount of TD in the software. When surveying how commonly used different TD management strategies are, we found that only the encouraging strategy is, to some extent, adopted in today’s’ software industry. This study also provides a model describing the four assessed strategies by presenting its strategies and tactics, together with recommendations on how they could be operationalized in today’s software companies.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121048880","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
Software Archinaut: A Tool to Understand Architecture, Identify Technical Debt Hotspots and Manage Evolution : Tool Presentation Paper 软件Archinaut:一个理解架构、识别技术债务热点和管理演进的工具:工具介绍论文
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388633
H. Cervantes, R. Kazman
In this paper we present Software Archinaut--a tool used to help identify technical debt hotspots in an architecture, and manage the evolution of the architecture once these hotspots are discovered. Archinaut is a platform that integrates analyses from different tools. It supports three main usage scenarios: 1) understanding the architecture, 2) identifying technical debt hotspots, and 3) monitoring and controlling the evolution of the architecture. We illustrate these scenarios by using Apache Kafka as an example.
在本文中,我们介绍了Software Archinaut——一种工具,用于帮助识别架构中的技术债务热点,并在发现这些热点后管理架构的演变。Archinaut是一个集成了不同工具分析的平台。它支持三种主要的使用场景:1)理解体系结构,2)识别技术债务热点,以及3)监视和控制体系结构的演变。我们以Apache Kafka为例来说明这些场景。
{"title":"Software Archinaut: A Tool to Understand Architecture, Identify Technical Debt Hotspots and Manage Evolution : Tool Presentation Paper","authors":"H. Cervantes, R. Kazman","doi":"10.1145/3387906.3388633","DOIUrl":"https://doi.org/10.1145/3387906.3388633","url":null,"abstract":"In this paper we present Software Archinaut--a tool used to help identify technical debt hotspots in an architecture, and manage the evolution of the architecture once these hotspots are discovered. Archinaut is a platform that integrates analyses from different tools. It supports three main usage scenarios: 1) understanding the architecture, 2) identifying technical debt hotspots, and 3) monitoring and controlling the evolution of the architecture. We illustrate these scenarios by using Apache Kafka as an example.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"261 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115895579","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
Experiences with Technical Debt and Management Strategies in Production Systems Engineering 在生产系统工程中具有技术债务和管理策略的经验
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388627
Laura Waltersdorfer, Felix Rinker, Lukas Kathrein, S. Biffl
Technical Debt (TD) has proven to be a suitable communication concept for software-intensive contexts to raise awareness regarding longterm negative effects of deviations from standards and guidelines. TD has also been introduced to systems engineering domain, to communicate design shortcomings in long-running, software-assisted systems. We analysed potential TD in the engineering data exchange for production system engineering. Similar to requirements engineering in software-intensive systems, data exchange in the design phase plays an integral part in Software Engineering (SE) for Production Systems Engineering: Specifications, and physical logic have to be derived from heterogeneous plant models or parameter tables designed by different stakeholders. However, traditional procedures and inadequate tool support lead to inefficient data extraction and integration. We identified debt arising from knowledge representation, data model and the exchange process. The refinement validation of identified TD was achieved through semi-structured interviews with representatives in two analysed companies. In an online survey with ten participants from an industrial consortium we evaluated whether the identified TD concepts also applied to other companies, which is true for the majority of TD. Furthermore, we discuss promising TD management strategies to repay and manage negative effects and the accumulation of additional debt, such as improved communication, test-driven model engineering and visualisation of engineering models.
技术债务(Technical Debt, TD)已经被证明是一个适合于软件密集型环境的沟通概念,它可以提高人们对偏离标准和指导方针的长期负面影响的认识。TD也被引入到系统工程领域,以沟通长期运行的软件辅助系统中的设计缺陷。我们分析了生产系统工程中工程数据交换的潜在TD。与软件密集型系统中的需求工程类似,设计阶段的数据交换在生产系统工程的软件工程(SE)中起着不可或缺的作用:规格说明和物理逻辑必须从不同涉众设计的异构工厂模型或参数表中派生出来。然而,传统的程序和不充分的工具支持导致数据提取和集成效率低下。我们从知识表示、数据模型和交换过程中发现了债务。通过与两家分析公司的代表进行半结构化访谈,实现了识别TD的细化验证。在一项在线调查中,来自一个工业联盟的10名参与者评估了所确定的TD概念是否也适用于其他公司,这对大多数TD来说是正确的。此外,我们讨论了有前途的输配电管理策略,以偿还和管理负面影响和额外债务的积累,例如改进沟通,测试驱动的模型工程和工程模型的可视化。
{"title":"Experiences with Technical Debt and Management Strategies in Production Systems Engineering","authors":"Laura Waltersdorfer, Felix Rinker, Lukas Kathrein, S. Biffl","doi":"10.1145/3387906.3388627","DOIUrl":"https://doi.org/10.1145/3387906.3388627","url":null,"abstract":"Technical Debt (TD) has proven to be a suitable communication concept for software-intensive contexts to raise awareness regarding longterm negative effects of deviations from standards and guidelines. TD has also been introduced to systems engineering domain, to communicate design shortcomings in long-running, software-assisted systems. We analysed potential TD in the engineering data exchange for production system engineering. Similar to requirements engineering in software-intensive systems, data exchange in the design phase plays an integral part in Software Engineering (SE) for Production Systems Engineering: Specifications, and physical logic have to be derived from heterogeneous plant models or parameter tables designed by different stakeholders. However, traditional procedures and inadequate tool support lead to inefficient data extraction and integration. We identified debt arising from knowledge representation, data model and the exchange process. The refinement validation of identified TD was achieved through semi-structured interviews with representatives in two analysed companies. In an online survey with ten participants from an industrial consortium we evaluated whether the identified TD concepts also applied to other companies, which is true for the majority of TD. Furthermore, we discuss promising TD management strategies to repay and manage negative effects and the accumulation of additional debt, such as improved communication, test-driven model engineering and visualisation of engineering models.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126202451","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
A Systematic Literature Review of Technical Debt Prioritization 技术债务优先排序的系统文献综述
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388630
Reem Alfayez, Wesam Alwehaibi, R. Winn, Elaine Venson, B. Boehm
Repaying all technical debt (TD) present in a system may be unfeasible, as there is typically a shortage in the resources allocated for TD repayment. Therefore, TD prioritization is essential to best allocate such resources to determine which TD items are to be repaid first and which items are to be delayed until later releases. This study conducts a systematic literature review (SLR) to identify and analyze the currently researched TD prioritization approaches. The employed search strategy strove to achieve high completeness through the identification of a quasi-gold standard set, which was used to establish a search string to automatically retrieve papers from select research databases. The application of selection criteria, along with forward and backward snowballing, identified 24 TD prioritization approaches. The analysis of the identified approaches revealed a scarcity of approaches that account for cost, value, and resources constraint and a lack of industry evaluation. Furthermore, this SLR unveils potential gaps in the current TD prioritization research, which future research may explore.
偿还系统中存在的所有技术债务(TD)可能是不可行的,因为分配给TD偿还的资源通常是短缺的。因此,TD优先级排序对于最好地分配这些资源是必要的,以确定哪些TD项目应该首先偿还,哪些项目要延迟到以后的版本。本研究通过系统的文献回顾(SLR)来识别和分析目前研究的TD优先排序方法。所采用的检索策略力求通过识别准金标准集来实现高完备性,并利用准金标准集建立检索字符串,从选定的研究数据库中自动检索论文。选择标准的应用,以及向前和向后滚雪球,确定了24种TD优先级方法。对已确定的方法的分析表明,缺乏考虑成本、价值和资源约束的方法,缺乏行业评估。此外,这一单反揭示了当前TD优先级研究的潜在空白,未来的研究可以探索这些空白。
{"title":"A Systematic Literature Review of Technical Debt Prioritization","authors":"Reem Alfayez, Wesam Alwehaibi, R. Winn, Elaine Venson, B. Boehm","doi":"10.1145/3387906.3388630","DOIUrl":"https://doi.org/10.1145/3387906.3388630","url":null,"abstract":"Repaying all technical debt (TD) present in a system may be unfeasible, as there is typically a shortage in the resources allocated for TD repayment. Therefore, TD prioritization is essential to best allocate such resources to determine which TD items are to be repaid first and which items are to be delayed until later releases. This study conducts a systematic literature review (SLR) to identify and analyze the currently researched TD prioritization approaches. The employed search strategy strove to achieve high completeness through the identification of a quasi-gold standard set, which was used to establish a search string to automatically retrieve papers from select research databases. The application of selection criteria, along with forward and backward snowballing, identified 24 TD prioritization approaches. The analysis of the identified approaches revealed a scarcity of approaches that account for cost, value, and resources constraint and a lack of industry evaluation. Furthermore, this SLR unveils potential gaps in the current TD prioritization research, which future research may explore.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130533324","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
Towards Microservice Smells Detection 面向微服务气味检测
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388625
Ilaria Pigazzini, F. Fontana, Valentina Lenarduzzi, D. Taibi
With the adoption of microservices architectural styles, practitioners started noticing increasing pitfalls in managing and maintaining such architectures, with the risk of introducing architectural debt. Previous studies identified different microservice smells (also named anti-patterns) that harm microservices architectures. However, according to our knowledge, there are no tools that can automatically detect microservice smells, so their identification is left to the experience of the developer. In this paper, we extend an existing tool developed for the detection of architectural smells to explore microservices architecture through the detection of three microservice smells: Cyclic Dependencies, Hard-Coded Endpoints, and Shared Persistence. We detected the smells on five open-source projects implemented with microservices and manually validated the precision of the detection results. This work aims to open new perspectives on facing and studying architectural debt in the field of microservices architectures.
随着微服务架构风格的采用,从业者开始注意到在管理和维护这种架构时越来越多的陷阱,以及引入架构债务的风险。先前的研究确定了不同的微服务气味(也称为反模式),它们会损害微服务架构。然而,据我们所知,目前还没有能够自动检测微服务气味的工具,所以它们的识别是留给开发人员的经验。在本文中,我们扩展了现有的用于检测体系结构气味的工具,通过检测三种微服务气味来探索微服务体系结构:循环依赖、硬编码端点和共享持久性。我们在五个使用微服务实现的开源项目中检测了气味,并手动验证了检测结果的准确性。这项工作旨在为面对和研究微服务架构领域的架构债务开辟新的视角。
{"title":"Towards Microservice Smells Detection","authors":"Ilaria Pigazzini, F. Fontana, Valentina Lenarduzzi, D. Taibi","doi":"10.1145/3387906.3388625","DOIUrl":"https://doi.org/10.1145/3387906.3388625","url":null,"abstract":"With the adoption of microservices architectural styles, practitioners started noticing increasing pitfalls in managing and maintaining such architectures, with the risk of introducing architectural debt. Previous studies identified different microservice smells (also named anti-patterns) that harm microservices architectures. However, according to our knowledge, there are no tools that can automatically detect microservice smells, so their identification is left to the experience of the developer. In this paper, we extend an existing tool developed for the detection of architectural smells to explore microservices architecture through the detection of three microservice smells: Cyclic Dependencies, Hard-Coded Endpoints, and Shared Persistence. We detected the smells on five open-source projects implemented with microservices and manually validated the precision of the detection results. This work aims to open new perspectives on facing and studying architectural debt in the field of microservices architectures.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129648716","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}
引用次数: 35
The Hidden Cost of Backward Compatibility: When Deprecation Turns into Technical Debt - An Experience Report 向后兼容性的隐性成本:当弃用变成技术债务时——一份经验报告
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388629
Anders Sundelin, J. Gonzalez-Huerta, K. Wnuk
Context: The micro-services architectural pattern advocates for the partitioning of functionality into loosely coupled services, which should be backward compatible, to enable independent upgrades. Deprecation is commonly used as a tool to manage multiple versions of methods or services. However, deprecation carries a cost in that tests might be duplicated and might rely on services that have become deprecated over time.Objective: Using the terms of the Technical Debt metaphor, we explore the consequences of deprecation, and how it has affected the test base during seven years.Method: We take an exploratory approach, reporting on experiences found before and after servicing parts of the incurred Technical Debt. We mine code repositories and validate our findings with experienced developers.Results: We found that the growth of deprecation debt varied a lot. Some services experienced substantial growth, but most did not. Unit tests, where deprecation is visible in the developers’ tools, were much less affected than integration tests, which lack such visualization mechanisms. While servicing debt of 121 out of 285 deprecated services, we discovered that up to 29% of the spent effort could be attributed to accrued interest. However, this is an upper bound; there could be less impact, depending on whether scripting could be used to service the debt or not.Conclusion: This paper illustrates that integration tests can be viewed as a debt from the perspective of deprecated services. While the pattern was that deprecated services (debt principal) experienced no or little accrued interest, some, highly used, services experienced a lot, particularly during stressful times. Java-based tests, where deprecation is visible in the IDE, did not experience a similar pattern of increasing debt. We postulate that deprecation debt should be kept visible, either using developer tools or statistical reports.
上下文:微服务体系结构模式提倡将功能划分为松散耦合的服务,这些服务应该是向后兼容的,以支持独立升级。弃用通常用作管理方法或服务的多个版本的工具。然而,弃用是有代价的,因为测试可能被重复,并且可能依赖于随着时间的推移而被弃用的服务。目标:使用技术债务比喻的术语,我们探索弃用的后果,以及它在七年中如何影响测试基础。方法:我们采用一种探索性的方法,报告在服务部分产生的技术债务之前和之后发现的经验。我们挖掘代码库,并与经验丰富的开发人员一起验证我们的发现。结果:我们发现折旧债务的增长变化很大。一些服务经历了大幅增长,但大多数服务没有。单元测试(在开发人员的工具中可以看到弃用)受到的影响要比集成测试小得多,集成测试缺乏这种可视化机制。在偿还285项已弃用服务中的121项债务时,我们发现高达29%的花费可能归因于应计利息。然而,这是一个上界;可能会有较小的影响,这取决于脚本是否可以用于偿还债务。结论:本文说明,从弃用服务的角度来看,集成测试可以被视为债务。虽然模式是已弃用的服务(债务本金)没有或只有很少的应计利息,但一些高度使用的服务却有很多利息,特别是在紧张时期。基于java的测试(在IDE中可以看到弃用)没有经历类似的增加债务的模式。我们假设折旧债务应该保持可见,无论是使用开发人员工具还是使用统计报告。
{"title":"The Hidden Cost of Backward Compatibility: When Deprecation Turns into Technical Debt - An Experience Report","authors":"Anders Sundelin, J. Gonzalez-Huerta, K. Wnuk","doi":"10.1145/3387906.3388629","DOIUrl":"https://doi.org/10.1145/3387906.3388629","url":null,"abstract":"Context: The micro-services architectural pattern advocates for the partitioning of functionality into loosely coupled services, which should be backward compatible, to enable independent upgrades. Deprecation is commonly used as a tool to manage multiple versions of methods or services. However, deprecation carries a cost in that tests might be duplicated and might rely on services that have become deprecated over time.Objective: Using the terms of the Technical Debt metaphor, we explore the consequences of deprecation, and how it has affected the test base during seven years.Method: We take an exploratory approach, reporting on experiences found before and after servicing parts of the incurred Technical Debt. We mine code repositories and validate our findings with experienced developers.Results: We found that the growth of deprecation debt varied a lot. Some services experienced substantial growth, but most did not. Unit tests, where deprecation is visible in the developers’ tools, were much less affected than integration tests, which lack such visualization mechanisms. While servicing debt of 121 out of 285 deprecated services, we discovered that up to 29% of the spent effort could be attributed to accrued interest. However, this is an upper bound; there could be less impact, depending on whether scripting could be used to service the debt or not.Conclusion: This paper illustrates that integration tests can be viewed as a debt from the perspective of deprecated services. While the pattern was that deprecated services (debt principal) experienced no or little accrued interest, some, highly used, services experienced a lot, particularly during stressful times. Java-based tests, where deprecation is visible in the IDE, did not experience a similar pattern of increasing debt. We postulate that deprecation debt should be kept visible, either using developer tools or statistical reports.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124000997","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
On Energy Debt : Managing Consumption on Evolving Software 论能源债务:用演进的软件管理能源消耗
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388628
Marco Couto, Daniel Maia, J. Saraiva, Rui Pereira
This paper introduces the concept of energy debt: a new metric, reflecting the implied cost in terms of energy consumption over time, of choosing a flawed implementation of a software system rather than a more robust, yet possibly time consuming, approach. A flawed implementation is considered to contain code smells, known to have a negative influence on the energy consumption.Similar to technical debt, if energy debt is not properly addressed, it can accumulate an energy “interest”. This interest will keep increasing as newversions of the software are released, and eventually reach a point where the interest will be higher than the initial energy debt. Addressing the issues/smells at such a point can remove energy debt, at the cost of having already consumed a significant amount of energy which can translate into high costs. We present all underlying concepts of energy debt, bridging the connection with the existing concept of technical debt and show how to compute the energy debt through a motivational example.
本文介绍了能源债务的概念:这是一个新的度量标准,反映了随着时间的推移,选择一个有缺陷的软件系统实现而不是一个更健壮但可能更耗时的方法所隐含的能源消耗成本。有缺陷的实现被认为包含代码气味,已知会对能源消耗产生负面影响。与技术债务类似,如果能源债务没有得到妥善解决,它可能会积累能源“利息”。随着软件新版本的发布,这种兴趣将不断增加,最终达到一个点,利息将高于最初的能源债务。在这一点上解决问题/气味可以消除能源债务,代价是已经消耗了大量的能源,这可能转化为高成本。我们提出了能源债务的所有基本概念,弥合了与现有技术债务概念的联系,并通过一个激励的例子展示了如何计算能源债务。
{"title":"On Energy Debt : Managing Consumption on Evolving Software","authors":"Marco Couto, Daniel Maia, J. Saraiva, Rui Pereira","doi":"10.1145/3387906.3388628","DOIUrl":"https://doi.org/10.1145/3387906.3388628","url":null,"abstract":"This paper introduces the concept of energy debt: a new metric, reflecting the implied cost in terms of energy consumption over time, of choosing a flawed implementation of a software system rather than a more robust, yet possibly time consuming, approach. A flawed implementation is considered to contain code smells, known to have a negative influence on the energy consumption.Similar to technical debt, if energy debt is not properly addressed, it can accumulate an energy “interest”. This interest will keep increasing as newversions of the software are released, and eventually reach a point where the interest will be higher than the initial energy debt. Addressing the issues/smells at such a point can remove energy debt, at the cost of having already consumed a significant amount of energy which can translate into high costs. We present all underlying concepts of energy debt, bridging the connection with the existing concept of technical debt and show how to compute the energy debt through a motivational example.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131690969","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
Towards Collaborative Technical Debt Management in Systems of Systems 面向系统的系统协同技术债务管理
Pub Date : 2020-05-01 DOI: 10.1145/3387906.3388620
J. Schütz, J. Gómez
Systems Engineering is a matter of the perspective and scope where several principles of the systems thinking approach coincide. Following the fundamental system principle of holism and interaction theory, in order to understand the whole the system should be considered as a whole. Due to the phenomena of emergence, not all properties of a system can be determined or explained by its components alone. The conceptual model of Technical Debt already recognize the context sensitivity of Technical Debt as an essential factor and identifies phenomena that fall outside the core definition of Technical Debt as a major part of future research.This short paper shows why managing the parts does not equal managing the whole by introducing Technical Debt as an emergent characteristic and why the traditional Technical Debt-Management methods can only be partially applied to Systems of Systems.
系统工程是一个观点和范围的问题,其中系统思维方法的几个原则是一致的。遵循整体论和相互作用理论的基本系统原理,要理解整体,就必须把系统看作一个整体。由于出现的现象,并不是一个系统的所有属性都可以由其组成部分单独确定或解释。技术债务的概念模型已经认识到技术债务的上下文敏感性是一个基本因素,并确定了技术债务核心定义之外的现象,作为未来研究的主要部分。本文通过介绍技术债务作为一种新兴特征来说明为什么管理部分不等于管理整体,以及为什么传统的技术债务管理方法只能部分地应用于系统的系统。
{"title":"Towards Collaborative Technical Debt Management in Systems of Systems","authors":"J. Schütz, J. Gómez","doi":"10.1145/3387906.3388620","DOIUrl":"https://doi.org/10.1145/3387906.3388620","url":null,"abstract":"Systems Engineering is a matter of the perspective and scope where several principles of the systems thinking approach coincide. Following the fundamental system principle of holism and interaction theory, in order to understand the whole the system should be considered as a whole. Due to the phenomena of emergence, not all properties of a system can be determined or explained by its components alone. The conceptual model of Technical Debt already recognize the context sensitivity of Technical Debt as an essential factor and identifies phenomena that fall outside the core definition of Technical Debt as a major part of future research.This short paper shows why managing the parts does not equal managing the whole by introducing Technical Debt as an emergent characteristic and why the traditional Technical Debt-Management methods can only be partially applied to Systems of Systems.","PeriodicalId":345508,"journal":{"name":"2020 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134332896","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
期刊
2020 IEEE/ACM International Conference on Technical Debt (TechDebt)
全部 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