Glossary of Software Architecture Terms: Roman Kern Version 1.0, 2016/17
Glossary of Software Architecture Terms: Roman Kern Version 1.0, 2016/17
Abstract
This documents represents a list of important terminology for the software
architecture course. Please beware that this is not an exhaustive list and some
important terms might be missing. Although this document can be used a learn-
ing aid, it is by itself not sufficient for a proper understanding of the content of
the course. In the case you would like to see additions to this document, please
inform the author via e-mail.
1
Code on Demand In a client server setting, the server might respond with an exe-
cutable/interpretable script in order to extend the functionality.
Command Cluster A set of components where each of them only contribute few
responsibilities.
Component Stereotype Assign a well known semantic to a component, e.g. user
initiated components in the UI.
Conceptual Architecture Model of the architecture focusing on domain level re-
sponsibilities, i.e. what groups of functionality does exist and how do these
groups interact to achieve a certain goal, e.g. a single use case.
Design by Contract Software design principle guided by the definition of rules how
the objects interact, e.g. via preconditions, postconditions and invariants.
Development-Time Binding Binding of services during build time, i.e. the devel-
oper specifies which services are used.
2
Fault Trees Model Models of the system designed to capture the dependencies be-
tween components in terms of error propagation, e.g. component A fails if
component B or C fails.
Law of Demeter Principle that states, that methods should only be invoked that are
directly accessible (to reduce the amount of changed entities in case of refac-
toring).
Layered Architecture Architecture pattern that organises the components into in-
dividual layers (on top of each other) with restrictions on the connections be-
tween the components.
Liskov Substitution Principle Contract between a client and a class, which guides
when an object can be substituted (in regard to the pre- and postconditions).
Mock-Up Schematic sketch, on how the user interface might look like and how the
interaction might look like.
Model Abstraction of the system, focusing on a single (or multiple) aspect, e.g. se-
curity, domain level responsibilities, executions.
3
Notification Architecture Architecture patterns with the callback mechanism as the
central element to model the process flow.
One-at-a-Time In a streaming setting each events is processed individually (improves
latency).
Open-Closed Principle Design software entities in such a way, that is easy to extend
them without the need to modify them.
Parallel Computing Systems designed to execute code in parallel, with a high de-
gree of shared resources, e.g. memory.
Peer to Peer Architecture based on the client-server pattern, where each nodes is
client and server at the same time.
PURS The runtime quality attributes: performance, usability, reliability, security.
Quality Attributes Key characteristics of a software system, including the run and
the build time.
Repository Type of data-centric architecture, where clients connect to a central server,
which is responsible for data management.
REST Representational State Transfer
RESTful A set of guidelines to help independent components (services) to work to-
gether (interoperable).
Rich Client Clients that implements a large part of the business logic, typically desk-
top applications.
ROA Resource-Oriented Architectures.
RPC Remote Procedure Call
Runtime Binding The services, which are used by the system are defined during
runtime, i.e. at startup the services are looked-up.
SaaS Software as a Service
Separation of Concern Principle to design systems in a way that the individual re-
sponsibilities (e.g. functionality) are clearly separated and assigned to individ-
ual components.
Share Nothing Architecture Highly scalable architecture based on distributed com-
ponents, that operate independent from each other.
Synchronous Communication Exchange of data between components, where the
requester does wait for the response.
SOA Service Oriented Architectures
SOAP Simple Object Access Protocol - a protocol designed to exchanged structured
information between services (used for method calls).
Supernode Peer node within a peer-to-peer architecture that serves additional pur-
poses.
4
Technical Prototype Prototype designed to test out a single, isolated aspect of the
system (proof of concept). Should be not be used as base for the development
of the system.
Uniformity Goal to keep the communication in a consistent way, e.g. data struc-
tures and protocol is shared between many components.
WSDL Web Services Description Language - language designed for the specification
of interfaces, in particular for services.