Setting up architectural SW health builds in a new product line generation

B. Boss, Christian Tischer, Sreejith Krishnan, Arun Nutakki, V. Gopinath
{"title":"Setting up architectural SW health builds in a new product line generation","authors":"B. Boss, Christian Tischer, Sreejith Krishnan, Arun Nutakki, V. Gopinath","doi":"10.1145/2993412.3003392","DOIUrl":null,"url":null,"abstract":"Setting up a new product line generation in a mature domain, typically does not start from scratch but takes into consideration the architecture and assets of the former product line generation. Being able to accommodate legacy and 3rd party code is one of the major product line qualities to be met. On the other side, product line qualities like reusability, maintainability and alterability, i.e. being able to cope up with a large amount of variability, with configurability and fast integratability are major drivers. While setting up a new product line generation and thus a new corresponding architecture, we this time focused on architectural software (SW) health and tracking of architectural metrics from the very beginning. Taking the definition of \"architecture being a set of design decisions\" [18] literally, we attempt to implement an architectural check for every design decision taken. Architectural design decisions in our understanding do not only - and even not mainly - deal with the definition of components and their interaction but with patterns and rules or anti-patterns. The rules and anti-patterns, \"what not to do\" or more often also \"what not to do any more\", is even more important in setting up a new product line generation because developers are not only used to the old style of developing and the old architecture, but also still have to develop assets for both generations. In this article we describe selected architectural checks that we have implemented, the layered architecture check and the check for usage of obsolete services. Additionally we discuss selected architectural metrics: the coupling coefficient metrics and the instability metrics. In the summary and outlook we describe our experiences and still open topics in setting up architectural SW health checks for a large-scale product line. The real-world examples are taken from the domain of Engine Control Unit development at Robert Bosch GmbH.","PeriodicalId":409631,"journal":{"name":"Proccedings of the 10th European Conference on Software Architecture Workshops","volume":"9 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-11-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proccedings of the 10th European Conference on Software Architecture Workshops","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2993412.3003392","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

Abstract

Setting up a new product line generation in a mature domain, typically does not start from scratch but takes into consideration the architecture and assets of the former product line generation. Being able to accommodate legacy and 3rd party code is one of the major product line qualities to be met. On the other side, product line qualities like reusability, maintainability and alterability, i.e. being able to cope up with a large amount of variability, with configurability and fast integratability are major drivers. While setting up a new product line generation and thus a new corresponding architecture, we this time focused on architectural software (SW) health and tracking of architectural metrics from the very beginning. Taking the definition of "architecture being a set of design decisions" [18] literally, we attempt to implement an architectural check for every design decision taken. Architectural design decisions in our understanding do not only - and even not mainly - deal with the definition of components and their interaction but with patterns and rules or anti-patterns. The rules and anti-patterns, "what not to do" or more often also "what not to do any more", is even more important in setting up a new product line generation because developers are not only used to the old style of developing and the old architecture, but also still have to develop assets for both generations. In this article we describe selected architectural checks that we have implemented, the layered architecture check and the check for usage of obsolete services. Additionally we discuss selected architectural metrics: the coupling coefficient metrics and the instability metrics. In the summary and outlook we describe our experiences and still open topics in setting up architectural SW health checks for a large-scale product line. The real-world examples are taken from the domain of Engine Control Unit development at Robert Bosch GmbH.
在新一代产品线中设置架构软件运行状况构建
在成熟的领域中建立新的产品线生成,通常不需要从头开始,而是要考虑以前产品线生成的体系结构和资产。能够容纳遗留代码和第三方代码是要满足的主要产品线质量之一。另一方面,产品线的质量,如可重用性、可维护性和可变性,即能够应对大量的可变性、可配置性和快速集成性,是主要的驱动因素。在建立新的产品线和相应的新架构的同时,我们这次从一开始就关注架构软件(SW)的健康和对架构指标的跟踪。按照“架构是一组设计决策”的定义[18],我们试图为所采取的每个设计决策实现架构检查。在我们的理解中,架构设计决策不仅——甚至不是主要——处理组件及其交互的定义,还处理模式和规则或反模式。规则和反模式,“不能做什么”,或者更经常的是“不能再做什么”,在建立新一代产品线时更加重要,因为开发人员不仅习惯了旧的开发风格和旧的架构,而且还必须为这两代人开发资产。在本文中,我们将描述已实现的选定体系结构检查、分层体系结构检查和过时服务使用检查。此外,我们还讨论了选定的体系结构度量:耦合系数度量和不稳定性度量。在总结和展望中,我们描述了我们在为大型产品线设置架构软件运行状况检查方面的经验和仍然开放的主题。真实世界的例子取自罗伯特博世有限公司的发动机控制单元开发领域。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信