首页 > 最新文献

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

英文 中文
Identifying Scalability Debt in Open Systems 确定开放系统中的可伸缩性债务
Pub Date : 2019-05-01 DOI: 10.1109/TechDebt.2019.00014
G. Hanssen, Gunnar Brataas, A. Martini
Architectural technical debt can be generated by changes in the business and the environment of an organization. In this paper, we emphasize the change in scalability requirements due to new regulations. Scalability is the ability of a system to handle an increased workload. For complex systems that are abruptly exposed via open interfaces and hence a greater workload, the scalability requirements may quickly increase, leading to technical debt. We term this scalability debt. This paper describes scalability triage, a light-weight, novel technique for identifying scalability threats as a form of technical debt. We illustrate this technique with an open banking case from a large software organization. Open banking is partly caused by the new European PSD2 regulative that enforce banks to open interfaces to unknown third-party actors. Banking systems are well-established, mature systems. However, with the advent of open banking and PSD2, the workload may quickly rocket. This leads to tougher scalability requirements and accumulated architectural debt, despite previously sound architectural decisions. Using scalability triage, such risks may be identified fast. It will then be possible to prevent this form of technical debt with timely reengineering.
架构技术债务可以由业务和组织环境的变化产生。在本文中,我们强调了由于新法规而导致的可扩展性需求的变化。可伸缩性是系统处理增加的工作负载的能力。对于突然通过开放接口公开的复杂系统,因此工作负载更大,可伸缩性需求可能会迅速增加,从而导致技术债务。我们称之为可扩展性债务。本文描述了可伸缩性分类,这是一种轻量级的新技术,用于将可伸缩性威胁识别为技术债务的一种形式。我们用一个大型软件组织的开放式银行案例来说明这种技术。开放银行的部分原因是新的欧洲PSD2法规强制银行向未知的第三方参与者开放接口。银行体系是完善、成熟的体系。然而,随着开放银行和PSD2的出现,工作量可能会迅速增加。这将导致更严格的可伸缩性需求和累积的体系结构债务,尽管之前的体系结构决策是合理的。使用可伸缩性分类,可以快速识别此类风险。这样就有可能通过及时的重组来防止这种形式的技术债务。
{"title":"Identifying Scalability Debt in Open Systems","authors":"G. Hanssen, Gunnar Brataas, A. Martini","doi":"10.1109/TechDebt.2019.00014","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00014","url":null,"abstract":"Architectural technical debt can be generated by changes in the business and the environment of an organization. In this paper, we emphasize the change in scalability requirements due to new regulations. Scalability is the ability of a system to handle an increased workload. For complex systems that are abruptly exposed via open interfaces and hence a greater workload, the scalability requirements may quickly increase, leading to technical debt. We term this scalability debt. This paper describes scalability triage, a light-weight, novel technique for identifying scalability threats as a form of technical debt. We illustrate this technique with an open banking case from a large software organization. Open banking is partly caused by the new European PSD2 regulative that enforce banks to open interfaces to unknown third-party actors. Banking systems are well-established, mature systems. However, with the advent of open banking and PSD2, the workload may quickly rocket. This leads to tougher scalability requirements and accumulated architectural debt, despite previously sound architectural decisions. Using scalability triage, such risks may be identified fast. It will then be possible to prevent this form of technical debt with timely reengineering.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124831700","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 the Diffuseness of Code Technical Debt in Open Source Projects 论开源项目中代码技术债的弥散性
Pub Date : 2019-05-01 DOI: 10.1109/TechDebt.2019.00028
Valentina Lenarduzzi, Nyyti Saarimaki, D. Taibi
Background. Companies commonly invest majorBackground. Companies commonly invest major effort into removing, respectively not introducing, technical debt issues detected by static analysis tools such as SonarQube, Cast, or Coverity. These tools classify technical debt issues into categories according to severity, and developers commonly pay attention to not introducing issues with a high level of severity that could generate bugs or make software maintenance more difficult. Objective. In this work, we aim to understand the diffuseness of Technical Debt (TD) issues and the speed with which developers remove them from the code if they introduced such an issue. The goal is to understand which type of TD is more diffused and how much attention is paid by the developers, as well as to investigate whether TD issues with a higher level of severity are resolved faster than those with a lower level of severity. We conducted a case study across 78K commits of 33 Java projects from the Apache Software Foundation Ecosystem to investigate the distribution of 1.4M TD items. Results. TD items introduced into the code are mostly related to code smells (issues that can increase the maintenance effort). Moreover, developers commonly remove the most severe issues faster than less severe ones. However, the time needed to resolve issues increases when the level of severity increases (minor issues are removed faster that blocker ones). Conclusion. One possible answer to the unexpected issue of resolution time might be that severity is not correctly defined by the tools. Another possible answer is that the rules at an intermediate severity level could be the ones that technically require more time to be removed. The classification of TD items, including their severity and type, require thorough investigation from a research point of view.effort into removing, respectively not introducing, technical debtissues detected by static analysis tools such as SonarQube, Cast, or Coverity. These tools classify technical debt issues intocategories according to severity, and developers commonly payattention to not introducing issues with a high level of severitythat could generate bugs or make software maintenance moredifficult. Objective. In this work, we aim to understand the diffuseness ofTechnical Debt (TD) issues and the speed with which developersremove them from the code if they introduced such an issue. The goal is to understand which type of TD is more diffusedand how much attention is paid by the developers, as well asto investigate whether TD issues with a higher level of severityare resolved faster than those with a lower level of severity. Weconducted a case study across 78K commits of 33 Java projectsfrom the Apache Software Foundation Ecosystem to investigatethe distribution of 1.4M TD items. Results. TD items introduced into the code are mostly relatedto code smells (issues that can increase the maintenance effort). Moreover, developers commonly remove the most sev
背景。公司一般投资专业背景。公司通常将主要精力投入到移除(而不是引入)静态分析工具(如SonarQube、Cast或Coverity)检测到的技术债务问题上。这些工具根据严重程度将技术债务问题分类,开发人员通常注意不要引入可能产生错误或使软件维护更加困难的严重程度较高的问题。目标。在这项工作中,我们的目标是了解技术债务(TD)问题的普遍性,以及开发人员在引入此类问题时从代码中删除它们的速度。目标是了解哪种类型的TD更分散,开发人员对其关注程度如何,以及调查严重程度较高的TD问题是否比严重程度较低的TD问题解决得更快。我们对来自Apache软件基金会生态系统的33个Java项目的78K次提交进行了案例研究,以调查140万个TD项目的分布。结果。引入代码的TD项主要与代码气味(可能增加维护工作量的问题)相关。此外,开发人员通常会比不太严重的问题更快地消除最严重的问题。然而,当问题的严重程度增加时,解决问题所需的时间也会增加(小问题比阻塞问题消除得更快)。结论。对于意想不到的解决时间问题,一个可能的答案可能是工具没有正确定义严重性。另一个可能的答案是,中等严重级别的规则可能是那些在技术上需要更多时间才能被删除的规则。TD项目的分类,包括其严重程度和类型,需要从研究的角度进行彻底的调查。努力去除(而不是引入)静态分析工具(如SonarQube、Cast或Coverity)检测到的技术缺陷。这些工具根据严重程度将技术债务问题分类,开发人员通常注意不要引入可能产生错误或使软件维护更加困难的严重程度较高的问题。目标。在这项工作中,我们的目标是了解技术债务(TD)问题的普遍性,以及开发人员在引入此类问题时从代码中删除它们的速度。我们的目标是了解哪种类型的TD更分散,以及开发者对TD的关注程度,以及调查严重程度较高的TD问题是否比严重程度较低的TD问题解决得更快。我们对来自Apache软件基金会生态系统的33个Java项目的78K次提交进行了一个案例研究,以调查140万个TD项目的分布。结果。引入代码的TD项主要与代码气味(可能增加维护工作量的问题)有关。此外,开发人员通常会比不太严重的问题更快地消除最严重的问题。然而,当问题的严重程度增加时,解决问题所需的时间也会增加(小问题比阻塞问题消除得更快)。结论。对于意想不到的解决时间问题,一个可能的答案可能是工具没有正确定义严重性。另一个可能的答案是,中等严重级别的规则可能是那些在技术上需要更多时间才能取消的规则。TD项目的分类,包括其严重程度和类型,需要从研究的角度进行彻底的调查。
{"title":"On the Diffuseness of Code Technical Debt in Open Source Projects","authors":"Valentina Lenarduzzi, Nyyti Saarimaki, D. Taibi","doi":"10.1109/TechDebt.2019.00028","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00028","url":null,"abstract":"Background. Companies commonly invest majorBackground. Companies commonly invest major effort into removing, respectively not introducing, technical debt issues detected by static analysis tools such as SonarQube, Cast, or Coverity. These tools classify technical debt issues into categories according to severity, and developers commonly pay attention to not introducing issues with a high level of severity that could generate bugs or make software maintenance more difficult. Objective. In this work, we aim to understand the diffuseness of Technical Debt (TD) issues and the speed with which developers remove them from the code if they introduced such an issue. The goal is to understand which type of TD is more diffused and how much attention is paid by the developers, as well as to investigate whether TD issues with a higher level of severity are resolved faster than those with a lower level of severity. We conducted a case study across 78K commits of 33 Java projects from the Apache Software Foundation Ecosystem to investigate the distribution of 1.4M TD items. Results. TD items introduced into the code are mostly related to code smells (issues that can increase the maintenance effort). Moreover, developers commonly remove the most severe issues faster than less severe ones. However, the time needed to resolve issues increases when the level of severity increases (minor issues are removed faster that blocker ones). Conclusion. One possible answer to the unexpected issue of resolution time might be that severity is not correctly defined by the tools. Another possible answer is that the rules at an intermediate severity level could be the ones that technically require more time to be removed. The classification of TD items, including their severity and type, require thorough investigation from a research point of view.effort into removing, respectively not introducing, technical debtissues detected by static analysis tools such as SonarQube, Cast, or Coverity. These tools classify technical debt issues intocategories according to severity, and developers commonly payattention to not introducing issues with a high level of severitythat could generate bugs or make software maintenance moredifficult. Objective. In this work, we aim to understand the diffuseness ofTechnical Debt (TD) issues and the speed with which developersremove them from the code if they introduced such an issue. The goal is to understand which type of TD is more diffusedand how much attention is paid by the developers, as well asto investigate whether TD issues with a higher level of severityare resolved faster than those with a lower level of severity. Weconducted a case study across 78K commits of 33 Java projectsfrom the Apache Software Foundation Ecosystem to investigatethe distribution of 1.4M TD items. Results. TD items introduced into the code are mostly relatedto code smells (issues that can increase the maintenance effort). Moreover, developers commonly remove the most sev","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"96 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114585752","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 36
Architectural Technical Debt in Microservices: A Case Study in a Large Company 微服务中的架构技术债务:一家大公司的案例研究
Pub Date : 2019-05-01 DOI: 10.1109/TechDebt.2019.00026
S. S. D. Toledo, A. Martini, Agata Przybyszewska, Dag I.K. Sjøberg
Introduction: Software companies aim to achieve continuous delivery to constantly provide value to their customers. A popular strategy is to use microservices architecture. However, such an architecture is also subject to debt, which hinders the continuous delivery process and thus negatively affects the software released to the customers. Objectives: The aim of this study is to identify issues, solutions and risks related to Architecture Technical Debt in microservices. Method: We conducted an exploratory case study of a real life project with about 1000 services in a large, international company. Through qualitative analysis of documents and interviews, we investigated Architecture Technical Debt in the communication layer of a system with microservices architecture. Results: Our main contributions are a list of Architecture Technical Debt issues specific for the communication layer in a system with microservices architecture, as well as their associated negative impact (interest), a solution to repay the debt and the its cost (principal). Among the found Architecture Technical Debt issues were the existence of business logic in the communication layer and a high amount of point-to-point connections between services. The studied solution consists of the implementation of different canonical models specific to different domains, the removal of business logic from the communication layer, and migration from services to use the communication layer correctly. We also contributed with a list of possible risks that can affect the payment of the debt, as lack of funding and inadequate prioritization. Conclusion: We found issues, solutions and possible risks that are specific for microservices architectures not yet encountered in the current literature. Our results may be useful for practitioners that want to avoid or repay Technical Debt in their microservices architecture.
简介:软件公司的目标是实现持续交付,不断地为客户提供价值。一种流行的策略是使用微服务架构。然而,这样的架构也会受到债务的影响,这会阻碍持续的交付过程,从而对发布给客户的软件产生负面影响。目的:本研究的目的是识别微服务中与架构技术债务相关的问题、解决方案和风险。方法:我们对一家大型国际公司中包含约1000项服务的实际项目进行了探索性案例研究。通过文献定性分析和访谈,研究了微服务系统通信层的架构技术债问题。结果:我们的主要贡献是一份体系结构技术债务问题的列表,这些问题是针对微服务体系结构系统中的通信层的,以及它们相关的负面影响(利息),偿还债务的解决方案及其成本(本金)。在发现的体系结构技术债务问题中,通信层中存在业务逻辑,服务之间存在大量的点对点连接。所研究的解决方案包括实现特定于不同领域的不同规范模型,从通信层删除业务逻辑,以及从服务迁移到正确使用通信层。我们还提供了一份可能影响债务支付的风险清单,如缺乏资金和优先次序不充分。结论:我们发现了当前文献中尚未遇到的微服务架构特有的问题、解决方案和可能的风险。我们的结果可能对想要避免或偿还微服务架构中的技术债务的从业者有用。
{"title":"Architectural Technical Debt in Microservices: A Case Study in a Large Company","authors":"S. S. D. Toledo, A. Martini, Agata Przybyszewska, Dag I.K. Sjøberg","doi":"10.1109/TechDebt.2019.00026","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00026","url":null,"abstract":"Introduction: Software companies aim to achieve continuous delivery to constantly provide value to their customers. A popular strategy is to use microservices architecture. However, such an architecture is also subject to debt, which hinders the continuous delivery process and thus negatively affects the software released to the customers. Objectives: The aim of this study is to identify issues, solutions and risks related to Architecture Technical Debt in microservices. Method: We conducted an exploratory case study of a real life project with about 1000 services in a large, international company. Through qualitative analysis of documents and interviews, we investigated Architecture Technical Debt in the communication layer of a system with microservices architecture. Results: Our main contributions are a list of Architecture Technical Debt issues specific for the communication layer in a system with microservices architecture, as well as their associated negative impact (interest), a solution to repay the debt and the its cost (principal). Among the found Architecture Technical Debt issues were the existence of business logic in the communication layer and a high amount of point-to-point connections between services. The studied solution consists of the implementation of different canonical models specific to different domains, the removal of business logic from the communication layer, and migration from services to use the communication layer correctly. We also contributed with a list of possible risks that can affect the payment of the debt, as lack of funding and inadequate prioritization. Conclusion: We found issues, solutions and possible risks that are specific for microservices architectures not yet encountered in the current literature. Our results may be useful for practitioners that want to avoid or repay Technical Debt in their microservices architecture.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133414494","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 33
[Title page iii] [标题页iii]
Pub Date : 2019-05-01 DOI: 10.1109/techdebt.2019.00002
{"title":"[Title page iii]","authors":"","doi":"10.1109/techdebt.2019.00002","DOIUrl":"https://doi.org/10.1109/techdebt.2019.00002","url":null,"abstract":"","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114725399","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Message from the Chairs of TechDebt 2019 TechDebt 2019主席的致辞
Pub Date : 2019-05-01 DOI: 10.1109/techdebt.2019.00006
Technical debt is a metaphor that software developers and managers increasingly use to communicate key trade-offs between business constraints and internal quality issues, especially those related to time to market. While other software engineering disciplines—such as software sustainability, maintenance and evolution, refactoring, software quality, and empirical software engineering—have produced results relevant to managing technical debt, none of them alone suffices to model, manage, and communicate the different facets of the complex trade-offs involved in managing technical debt. Similarly, while many software engineering practices can be used to get ahead of technical debt, organizations struggle with managing technical debt routinely and strategically.
技术债务是一个比喻,软件开发人员和管理人员越来越多地使用它来沟通业务约束和内部质量问题之间的关键权衡,特别是那些与上市时间相关的问题。虽然其他软件工程学科——例如软件可持续性、维护和进化、重构、软件质量和经验软件工程——已经产生了与管理技术债务相关的结果,但它们中的任何一个都不足以对管理技术债务所涉及的复杂权衡的不同方面进行建模、管理和沟通。类似地,虽然许多软件工程实践可以用于提前处理技术债务,但组织仍在常规地和战略性地管理技术债务。
{"title":"Message from the Chairs of TechDebt 2019","authors":"","doi":"10.1109/techdebt.2019.00006","DOIUrl":"https://doi.org/10.1109/techdebt.2019.00006","url":null,"abstract":"Technical debt is a metaphor that software developers and managers increasingly use to communicate key trade-offs between business constraints and internal quality issues, especially those related to time to market. While other software engineering disciplines—such as software sustainability, maintenance and evolution, refactoring, software quality, and empirical software engineering—have produced results relevant to managing technical debt, none of them alone suffices to model, manage, and communicate the different facets of the complex trade-offs involved in managing technical debt. Similarly, while many software engineering practices can be used to get ahead of technical debt, organizations struggle with managing technical debt routinely and strategically.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122070416","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Temporal Discounting in Technical Debt: How do Software Practitioners Discount the Future? 技术债务的时间贴现:软件从业者如何贴现未来?
Pub Date : 2019-01-21 DOI: 10.1109/TechDebt.2019.00011
Christoph Becker, Fabian Fagerholm, Rahul Mohanani, A. Chatzigeorgiou
Technical Debt management decisions always imply a trade-off among outcomes at different points in time. In such intertemporal choices, distant outcomes are often valued lower than close ones, a phenomenon known as temporal discounting. Technical Debt research largely develops prescriptive approaches for how software engineers should make such decisions. Few have studied how they actually make them. This leaves open central questions about how software practitioners make decisions. This paper investigates how software practitioners discount uncertain future outcomes and whether they exhibit temporal discounting. We adopt experimental methods from intertemporal choice, an active area of research. We administered an online questionnaire to 33 developers from two companies in which we presented choices between developing a feature and making a longer-term investment in architecture. The results show wide-spread temporal discounting with notable differences in individual behavior. The results are consistent with similar studies in consumer behavior and raise a number of questions about the causal factors that influence temporal discounting in software engineering. As the first empirical study on intertemporal choice in SE, the paper establishes an empirical basis for understanding how software developers approach intertemporal choice and provides a blueprint for future studies.
技术债务管理决策总是意味着在不同时间点的结果之间的权衡。在这样的跨期选择中,远的结果往往比近的结果更有价值,这种现象被称为时间贴现。技术债务研究主要开发了软件工程师应该如何做出此类决策的规定性方法。很少有人研究它们实际上是如何产生的。这就留下了关于软件从业者如何做出决策的核心问题。本文研究了软件从业者如何贴现不确定的未来结果,以及他们是否表现出时间贴现。我们采用跨期选择的实验方法,这是一个活跃的研究领域。我们对来自两家公司的33名开发人员进行了在线问卷调查,让他们在开发功能和对架构进行长期投资之间做出选择。结果表明,时间折现现象广泛存在,个体行为差异显著。结果与消费者行为的类似研究一致,并提出了一些关于影响软件工程中时间折扣的因果因素的问题。作为第一个关于跨期选择的实证研究,本文为理解软件开发人员如何处理跨期选择奠定了实证基础,并为未来的研究提供了蓝图。
{"title":"Temporal Discounting in Technical Debt: How do Software Practitioners Discount the Future?","authors":"Christoph Becker, Fabian Fagerholm, Rahul Mohanani, A. Chatzigeorgiou","doi":"10.1109/TechDebt.2019.00011","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00011","url":null,"abstract":"Technical Debt management decisions always imply a trade-off among outcomes at different points in time. In such intertemporal choices, distant outcomes are often valued lower than close ones, a phenomenon known as temporal discounting. Technical Debt research largely develops prescriptive approaches for how software engineers should make such decisions. Few have studied how they actually make them. This leaves open central questions about how software practitioners make decisions. This paper investigates how software practitioners discount uncertain future outcomes and whether they exhibit temporal discounting. We adopt experimental methods from intertemporal choice, an active area of research. We administered an online questionnaire to 33 developers from two companies in which we presented choices between developing a feature and making a longer-term investment in architecture. The results show wide-spread temporal discounting with notable differences in individual behavior. The results are consistent with similar studies in consumer behavior and raise a number of questions about the causal factors that influence temporal discounting in software engineering. As the first empirical study on intertemporal choice in SE, the paper establishes an empirical basis for understanding how software developers approach intertemporal choice and provides a blueprint for future studies.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-01-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125723630","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
Mitigating Technical and Architectural Debt with Sonargraph 使用Sonargraph减轻技术和架构债务
Pub Date : 1900-01-01 DOI: 10.1109/TechDebt.2019.00022
Alexander von Zitzewitz
Sonargraph is a static analyzer with a focus on software architecture and metrics. The motivation to create Sonargraph came from the assumption that architectural debt (aka structural debt) is the most toxic form of technical debt. Repairing a broken architecture requires global and high-risk changes, while fixing other forms of technical debt mostly involves low-risk local changes. Therefore, the tool enables architects and developers to formally describe their architectural blueprint using a custom DSL (domain specific language). Once defined architectural rules can be checked and enforced in an automated way in all stages of the development process. This guarantees that a software system will never end up as the notorious "big ball of mud". Sonargraph currently supports Java, C#, C/C++ and Python and is used by hundreds of organizations worldwide.
Sonargraph是一个专注于软件架构和度量的静态分析器。创建Sonargraph的动机来自这样一个假设:架构债(又名结构债)是技术债中最有害的形式。修复损坏的架构需要全局和高风险的更改,而修复其他形式的技术债务主要涉及低风险的局部更改。因此,该工具使架构师和开发人员能够使用定制的DSL(领域特定语言)正式描述他们的架构蓝图。一旦定义了体系结构规则,就可以在开发过程的所有阶段以自动化的方式检查和执行。这保证了软件系统永远不会成为臭名昭著的“大泥球”。Sonargraph目前支持Java、c#、C/ c++和Python,被全球数百家组织使用。
{"title":"Mitigating Technical and Architectural Debt with Sonargraph","authors":"Alexander von Zitzewitz","doi":"10.1109/TechDebt.2019.00022","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00022","url":null,"abstract":"Sonargraph is a static analyzer with a focus on software architecture and metrics. The motivation to create Sonargraph came from the assumption that architectural debt (aka structural debt) is the most toxic form of technical debt. Repairing a broken architecture requires global and high-risk changes, while fixing other forms of technical debt mostly involves low-risk local changes. Therefore, the tool enables architects and developers to formally describe their architectural blueprint using a custom DSL (domain specific language). Once defined architectural rules can be checked and enforced in an automated way in all stages of the development process. This guarantees that a software system will never end up as the notorious \"big ball of mud\". Sonargraph currently supports Java, C#, C/C++ and Python and is used by hundreds of organizations worldwide.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115064100","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
期刊
2019 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