First-class concepts: reifying architectural knowledge beyond the dominant decomposition

Toni Mattis, Tom Beckmann, Patrick Rein, R. Hirschfeld
{"title":"First-class concepts: reifying architectural knowledge beyond the dominant decomposition","authors":"Toni Mattis, Tom Beckmann, Patrick Rein, R. Hirschfeld","doi":"10.1145/3464970.3468413","DOIUrl":null,"url":null,"abstract":"In software engineering, programs are ideally partitioned into independently maintainable and understandable modules. As a system grows, its architecture gradually loses the capability to modularly accommodate new concepts. While refactoring is expensive and the language might lack appropriate primary language constructs to express certain cross-cutting concerns, programmers are still able to explain and delineate convoluted concepts through secondary means: code comments, use of whitespace and arrangement of code, documentation, or communicating tacit knowledge. Secondary constructs are easy to change and provide high flexibility in communicating cross-cutting concerns and other concepts among programmers. However, they have no reified representation that can be explored and maintained through tools. In this exploratory work, we discuss novel ways to express a wide range of concepts, including cross-cutting concerns, patterns, and lifecycle artifacts independently of the dominant decomposition imposed by an existing architecture. Our concepts are first-class objects inside the programming environment that retain the capability to change as easily as code comments. We explore new tools that allow programmers to view and change programs from conceptual perspectives rather than scattering their attention across existing modules. Our designs are geared towards facilitating multiple secondary perspectives on a system to co-exist alongside the original architecture, hence making it easier to explore, understand, and explain complex contexts and narratives not expressible in traditional modularity constructs.","PeriodicalId":143989,"journal":{"name":"Proceedings of the 13th ACM International Workshop on Context-Oriented Programming and Advanced Modularity","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2021-07-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 13th ACM International Workshop on Context-Oriented Programming and Advanced Modularity","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3464970.3468413","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

In software engineering, programs are ideally partitioned into independently maintainable and understandable modules. As a system grows, its architecture gradually loses the capability to modularly accommodate new concepts. While refactoring is expensive and the language might lack appropriate primary language constructs to express certain cross-cutting concerns, programmers are still able to explain and delineate convoluted concepts through secondary means: code comments, use of whitespace and arrangement of code, documentation, or communicating tacit knowledge. Secondary constructs are easy to change and provide high flexibility in communicating cross-cutting concerns and other concepts among programmers. However, they have no reified representation that can be explored and maintained through tools. In this exploratory work, we discuss novel ways to express a wide range of concepts, including cross-cutting concerns, patterns, and lifecycle artifacts independently of the dominant decomposition imposed by an existing architecture. Our concepts are first-class objects inside the programming environment that retain the capability to change as easily as code comments. We explore new tools that allow programmers to view and change programs from conceptual perspectives rather than scattering their attention across existing modules. Our designs are geared towards facilitating multiple secondary perspectives on a system to co-exist alongside the original architecture, hence making it easier to explore, understand, and explain complex contexts and narratives not expressible in traditional modularity constructs.
一流的概念:超越主导分解的建筑知识具体化
在软件工程中,程序被理想地划分为可独立维护和可理解的模块。随着系统的增长,其体系结构逐渐失去模块化适应新概念的能力。虽然重构是昂贵的,并且语言可能缺乏适当的主要语言结构来表达某些横切关注点,但程序员仍然能够通过次要手段解释和描述复杂的概念:代码注释、空白的使用和代码的排列、文档或沟通隐性知识。次要构造很容易更改,并且在程序员之间沟通横切关注点和其他概念时提供了高度的灵活性。然而,它们没有可以通过工具探索和维护的具体化表示。在这项探索性工作中,我们讨论了表达广泛概念的新方法,包括横切关注点、模式,以及独立于现有体系结构强加的主要分解的生命周期工件。我们的概念是编程环境中的一等对象,它保留了像代码注释一样容易更改的能力。我们探索允许程序员从概念角度查看和更改程序的新工具,而不是将他们的注意力分散在现有模块上。我们的设计旨在促进系统的多个次要视角与原始建筑共存,从而使探索、理解和解释传统模块化结构中无法表达的复杂背景和叙述变得更容易。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信