A Model of Layered Architectures
Authors:
- Diego MarmsolerDMDiego Marmsoler
- Alexander MalkisAMAlexander Malkis
- Jonas EckhardtJEJonas Eckhardt
Preprint
Abstract
Architectural styles and patterns play an important role in software engineering. One of the most known ones is the layered architecture style. However, this style is usually only stated informally, which may cause problems such as ambiguity, wrong conclusions, and difficulty when checking the conformance of a system to the style. We address these problems by providing a formal, denotational semantics of the layered architecture style. Mainly, we present a sufficiently abstract and rigorous description of layered architectures. Loosely speaking, a layered architecture consists of a hierarchy of layers, in which services communicate via ports. A layer is modeled as a relation between used and provided services, and layer composition is defined by means of relational composition. Furthermore, we provide a formal definition for the notions of syntactic and semantic dependency between the layers. We show that these dependencies are not comparable in general. Moreover, we identify sufficient conditions under which, in an intuitive sense which we make precise in our treatment, the semantic dependency implies, is implied by, or even coincides with the reflexive-transitive closure of the syntactic dependency. Our results provide a technology-independent characterization of the layered architecture style, which may be used by software architects to ensure that a system is indeed built according to that style.Keywords
All Related Versions
This publication has 14 references indexed in Scilit:
- Compositional Network MobilityLecture Notes in Computer Science, 2014
- Where's the Theory for Software Engineering?IEEE Software, 2012
- Can Practitioners Neglect Theory and Theoreticians Neglect Practice?Computer, 2011
- The golden age of software architectureIEEE Software, 2006
- Service-Oriented Systems Engineering: Specification and Design of Services and Layered Architectures2005
- Formal modeling of the Enterprise JavaBeans™ component integration frameworkInformation and Software Technology, 2001
- Specification and Development of Interactive Systems2001
- Describing software architecture styles using graph grammarsIEEE Transactions on Software Engineering, 1998
- Correct architecture refinementIEEE Transactions on Software Engineering, 1995
- Formal specifications as reusable frameworksLecture Notes in Computer Science, 1990