A Model of Layered Architectures
Open Access
- 17 March 2015
- journal article
- Published by Open Publishing Association in Electronic Proceedings in Theoretical Computer Science
- Vol. 178, 47-61
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.Comment: In Proceedings FESCA 2015, arXiv:1503.0437Keywords
All Related Versions
This publication has 16 references indexed in Scilit:
- Where's the Theory for Software Engineering?IEEE Software, 2012
- Can Practitioners Neglect Theory and Theoreticians Neglect Practice?Computer, 2011
- Service-Oriented Systems Engineering: Specification and Design of Services and Layered Architectures2005
- Specification and Development of Interactive Systems2001
- On the formalization of architectural types with process algebrasACM SIGSOFT Software Engineering Notes, 2000
- Software architecture2000
- Describing software architecture styles using graph grammarsIEEE Transactions on Software Engineering, 1998
- Formalizing style to understand descriptions of software architectureACM Transactions on Software Engineering and Methodology, 1995
- Formalizing design spaces: Implicit invocation mechanisms1991
- Formal specifications as reusable frameworksLecture Notes in Computer Science, 1990