Abstractness, specificity, and complexity in software design
Stefan Wagner, Florian Deissenboeck

TL;DR
This paper explores the nuanced roles of two types of abstraction in software design, analyzing their impact on complexity and specificity, and offers insights to improve software engineering practices.
Contribution
It introduces a novel distinction of two abstraction types in software design and examines their effects on complexity and specificity.
Findings
Two types of abstraction influence software artefact properties differently.
Understanding these types helps optimize design trade-offs.
The distinction aids in better software design decisions.
Abstract
Abstraction is one of the fundamental concepts of software design. Consequently, the determination of an appropriate abstraction level for the multitude of artefacts that form a software system is an integral part of software engineering. However, the very nature of abstraction in software design and particularly its interrelation with equally important concepts like complexity, specificity or genericity are not fully understood today. As a step towards a better understanding of the trade-offs involved, this paper proposes a distinction of abstraction into two types that have different effects on the specificity and the complexity of artefacts. We discuss the roles of the two types of abstraction in software design and explain the interrelations between abstractness, specificity, and complexity. Furthermore, we illustrate the benefit of the proposed distinction with multiple examples…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
