DSLs per Architectures and Programming Discipline
Due to the large number of entries in the Architectures and Programming subdomain we group the DSLs and their publications following the Software Engineering Body of Knowledge (SWEBOK), namely Software Design (Section 2.2) and Software Structure and Architecture (Section 2.3).
The following chart shows the identified disciplines according to the Software Engineering Body of Knowledge (SWEBOK) and the numbers of publications we found in the disciplines respectively. This is intended to serve as a map for potential DSL users as well as foster discussion and reuse of languages and the underlying models for DSL developers.
- 1985
- 1990
- 1995
- 2000
- 2005
- 2010
- 2015
-
Concurrency 17
Decomposition of software into processes, tasks, and threads, dealing with related issues of efficiency, atomicity, synchronization, and scheduling. This discipline corresponds to the Section 2.2.1 in the SWEBOK.
-
Control and Handling of Events 55
Organization of data and control flow as well as handling of reactive and temporal events. This discipline corresponds to the Section 2.2.2 in the SWEBOK.
-
Data Persistence 2
Handling of long-lived data. This discipline corresponds to the Section 2.2.3 in the SWEBOK.
-
Distribution of Components 18
Distribution of the software across the hardware, communication of components, and how can middleware be used to deal with heterogeneous software. This discipline corresponds to the Section 2.2.4 in the SWEBOK.
-
Error and Exception Handling and Fault Tolerance 9
Prevention, toleration, and processing of errors as well as dealing with exceptional conditions. This discipline corresponds to the Section 2.2.5 in the SWEBOK.
-
Interaction and Presentation 13
Structuring and organization of interactions with users as well as the presentation of information. This discipline corresponds to the Section 2.2.6 in the SWEBOK.
-
Security and Safety 9
Prevention of unauthorized access to and manipulation of information and other resources. Limiting of damage, continuation of service, speed-up of repair, and how to fail and recover securely. Ensuring safety of humans in the presence of robots. This discipline corresponds to the Section 2.2.7 in the SWEBOK.
-
Architectural Structures and Viewpoints 31
Description of architectural structures and software designs in general by independent and orthogonal views. This discipline corresponds to the Section 2.3.1 in the SWEBOK.
-
Architectural Styles 21
Descriptions and guidance for the high-level organization of software providing "a specialization of element and relation types, together with a set of constraints on how they can be used". This discipline corresponds to the Section 2.3.2 in the SWEBOK.
-
Design Patterns 9
Provide "a common solution to a common problem in a given context". Typically employed at a lower abstraction level than architectural styles. This discipline corresponds to the Section 2.3.3 in the SWEBOK.
-
Architecture Design Decisions 8
Impact of quality attributes and the tradeoffs among competing quality attributes that provide the basis for design decisions. This discipline corresponds to the Section 2.3.4 in the SWEBOK.
-
Families of Programs and Frameworks 7
Software product lines or Frameworks encapsulating commonalities among elements and targeting re-use by designing customizable components that account for variability. This discipline corresponds to the Section 2.3.5 in the SWEBOK.