Arch Template
Arch Template
Architectures
Abstract
This paper defines a template for producing architectural documentation. Two different kinds of
architectural documentation are identified: an architectural overview and an architecture reference
manual. The template specifies a common structure for both kinds of document and illustrates its use
with examples. The focus of the template is on the logical view of a system including system
purpose, system context and interface, structure of the system, and dynamic behavior of the system.
Other system views like process view, physical view, or conceptual framework view of the problem
domain are also integrated. The template is intended for use in product development for defining the
architecture of software and firmware projects.
Scoping
Not every architecture documentation requires all the sections described in this template. Appendix A gives
a summary of all the sections and shows which ones are optional. Yet even for the mandatory sections the
amount of information documented not only varies between architectural overview and architectural
reference manual, but also from project to project. The introduction section of the architecture document
lists the stakeholders and their concerns. An architecture document is complete as soon as the concerns of
the stakeholders are met.
The following chapters discuss the structure and content of each section of the architecture document.
3. 1 Introduction Section
The introduction section identifies the architecture and its stakeholders, and it records the creation and
subsequent modification to the architecture documentation. Details to be captured include:
• name of the architecture
• architecture design team and author of the architecture document with information on who to
contact to provide feedback for the architecture and its documentation
• creation and modification history
• audience and purpose
• selected viewpoints
• related documents
1
Needed for conformity with IEEE Recommended Practice for Architectural Description
2
Depending on purpose and audience of the architecture documentation, the system purpose section can simply contain
references to the appropriate sections in requirements specification documents,
- if a system requirements specification contains the same information or models as required for the sections
“Context”, “System Interface” and “Non-Functional Requirements”,
- if such system requirements documentation is maintained and updated during the life of the system,
- and if these documents are readily available to the audience of the architecture documentation.
Example
CellKeeper Purpose and Context
Mobile phones are controlled by a network of cells that manage the call traffic on radio frequencies. These cells are
responsible for covering a geographic area, knowing about adjacent cells, and handing over calls to other cells when
the signal quality is reduced due to movement of the mobile phone.
CellKeeper is an application that can manage the configuration of a network of cells. E.g., when there is an increased
need for capacity of the network, a operator can interact with CellKeeper to split an existing cell into multiple cells.
Also, CellKeeper can download new parameters to an individual cell (cell frequencies, exclusive use of cell by phones
for emergency purposes only, etc.).
network updates
cell changes
projected results of changes
cellkeeper
results of changes
results of changes network
Cellular_
Operator management
network
system
3
An actor is any active entity in the environment of the system that interacts with the system.
4
A use case consists of several steps and interactions between one or several external actors and the system in order to
achieve a specific goal. If on a given abstraction level the steps of a use case are not further decomposed, then the steps
are considered as being system operations. In contrast to use cases, a system operation only has one input interaction on
Example
CellKeeper Operator Interface
Figure 5: Example CellKeeper: one of the system interfaces in an architectural overview document
the chosen abstraction level for interactions – the event or call that triggers the operation. Each input interaction
triggers a new operation; any more detailed communication between actor and system is abstracted away.
The same distinction applies between component use cases and component operations.
5
A good starting point for finding non-functional requirements is FURPS, and acronym that stands for the attributes
Functionality, Usability, Reliability, Performance, and Supportability.
Example
CellKeeper: Qualities
• The management system remains active even if all or part of the actual cellular network goes down. In case of
partial failures of the cellular network, CellKeeper still allows operators to edit changes for the part of the network
still available and can apply these changes to the network.
• Failures (e.g. power failures) of operator stations, and aborts of operator sessions (especially web sessions)
should not affect other operator sessions or any other functionality of the CellKeeper system.
• Extensibility: The system must be extendable with new cell types without any downtime.
• …
CellKeeper: Constraints
• The system has to run on Linux.
• …
CellKeeper: Principles
• Interface procedures for individual cell types are stored in a repository and not hard coded, so new cell types can
be added dynamically. This principle supports extensibility.
• …
<Overview>
<Components> <Interfaces>
purpose,
architecture
Structure responsibilities, operations of the
diagram &
interfaces of each interface
commentary
component
6
Components may merely serve as a high-level grouping mechanism for classes and not be reflected in the actual code
(white-box component). Or components may be encapsulations of classes having an interface or façade class that is part
of the component and hides the internal structure of the component (black-box component). Such interface or façade
classes often have the name of the component they belong to. Components can be passive or active (have their own
thread of control), be created at system startup or be created and deleted any time at runtime, be singletons or have
several instances, and they can be system specific or be reusable library components or COTS. Most logical
components modeled in an architecture document reflect software components, but they could also give a purely
functional view of other technical components (e.g., sensors), if these are considered as part of the system and not as
actors. Logical components can be mapped onto hardware nodes and into code components (code files, code libraries,
code packages). That mapping can be 1:1, but this is not necessary – a logical component may be mapped to code in
various packages or files, and these packages or files may contain code for various logical components.
7
As an alternative, UML object diagrams can be used where logical components are represented as objects or object
groups.
8
Composition is a strong “whole-part” association in which lifetime of parts is co-incident with whole and if the whole
is copied or deleted then so are the parts.
9
Actual data flow can take place in both direction, independent of the association direction.
10
The type of connection can refer to the underlying distribution system or communication mechanism used (e.g.,
CORBA, RMI, proprietary communication protocol, event broadcast, message passing). The type of connection can
also refer to any higher level domain specific communication protocol used for the communication between the two
components (e.g., SMTP protocol, http, or proprietary high-level protocols). The type of a connection can also depict
indirect (event-based) invocation, e.g., by using the stereotype <<implicit>>. The type of the connection is given as a
stereotype of the association. As an alternative, special association symbols can be defined and used.
mail_server
sends messages to
0..n
0..n 0..n
0..n
1 communicates with 1 0..n
Session-
creates control creates Delta sends updates to
operator
0..n 0..n 0..n 0..n cellular network
login
1
Main
Executor 1
1 sends network 1
Physical
1 configuration to
Log UpdateScheduleQ
<<implicit>>
stores changes in
The CellKeeper system has one central repository for the cell management interfaces, one
cell id generator, one authentication server and one executor. The system also contains an
up-to-date model of the actual cellular network in the component physical. For each session
with an operator, a Session_control component is created. The component Log records all
changes (failed and successful ones) that have been applied to the network.
Cell Management Interfaces have to be located via a repository – so they can be changed
at runtime. The interfaces have to be used indirectly through the Session-control
component.
The Physical component must be kept consistent with the actual state of the network. It is
updated whenever a delta has been successfully applied to the network – but not
otherwise.
The system allows several operators to edit changes in parallel. The actual execution of the
changes is done sequentially. Changes are checked for consistency by the system while
they are edited and before they are applied. Finally the cellular network itself can refuse
changes, in which case all the changes belonging together are rolled back.
<<uses>>
Information Layer
Authentication
Physical Repository
server
This diagram shows the architecture of CellKeeper from another point of view:
the layering of the various components. For the associations between the
individual components see the main architecture diagram.
Figure 9: Example CellKeeper: Architecture diagram for the layering of the logical components
Example
Commentary:
Reasons for having Session_control and Delta components:
• For each operator session a Session_control component is created. This makes it easier to deal with
aborted sessions and to guarantee that aborted sessions do not influence other sessions.
• Because a set of changes has to be dealt with together when being scheduled and applied to the
network, each set of changes is being grouped together into a Delta component.
Layering of components:
• A layered architecture style has been chosen (see layering diagram). The components of the control
layer access and update the information stored in the components of the information layer.
• It is conceivable that other applications than the CellKeeper would access the information of the
information layer.
• The three information layer components run in separate processes, and can be deployed onto different
servers, thus allowing the information components to stay alive even if the control layer crashes (see
also Other views section).
Alternative architectures:
This architecture has been taken over from the prototype PfMCM. No alternative architectures have been
explored due to time and cost constraints.
In case of large complex systems, diagrams on different levels of abstraction are used, with the top-level
diagram showing the decomposition of the system into a handful (5 ± 2) of pieces. These pieces are high-
level components; however, more often they are referred to as subsystems. Subsystems are also modeled as
classes or objects in a class or object diagram. Lower level diagrams show the decomposition of the high-
level subsystems or components into the components that are described in the components section 3.3.2..
Figure 11 contains an example of a component specification. The following sections discuss the form and
semantics of each field of the specification.
Component
Each component should have a unique name and possibly a version number. This section can also contain
references to the component design documentation and to the implementation. In case of a complex
component that has been broken down into subcomponents, also add the reference to the chapters or to the
architecture document describing the internal structure of the component.
Responsibilities
Describes the purpose or job description of the component in terms of
1. the component’s responsibilities,
2. the interface(s) that it provides.
A responsibility is a “piece of functionality” and specifies the purpose of the component. It can be
information that the component has to know, or an action that it knows how to perform.
Interfaces can be listed by reference to named interface specifications in section 3.3.3, or by explicitly
listing and describing the use cases or operations that constitute the interface in the same way as they are
described in section 3.3.3. Referencing named interfaces facilitates component “plug and play”.
It can also be useful to document the rationale for the component, i.e. give the underlying reasons why the
component is designed the way it is.
11
For modeling placeholders for architecture specific components in a generic architecture model the UML symbol for
abstract classes can be used. As an alternative, placeholders in generic architectures could be modeled by a special
placeholder symbol (e.g., class symbol with stereotype <<placeholder>>, operation of stereotype <<placeholder>>,
class symbol with gray edges).
Notes
Documents the architectural or system-level constraints on the component that the design of the component
must satisfy and contains further information needed to use and understand the component. The notes
section includes issues such as:
• Multiplicity: How many instances of this component exist in the architecture? Are the instances
created and destroyed dynamically? If so, under what conditions and how does creation and
destruction occur?
• Concurrency: Is the component multi-threaded? Does it contain data that needs to be protected
against simultaneous reading and writing?
• Persistency: Does the component or its data need to exist beyond the lifetime of the system?
• Parameterization: Describes the variability of a component, i.e., ways in which a component can
be parameterized or configured. This is especially important when a different configuration of the
component changes the depiction of the architecture12.
Issues
List of issues awaiting resolution. There may also be some notes on possible implementation strategies or
impact on other components. As the understanding of the system and its architecture increases this list
should eventually become empty.
12
For example, in printer software a component might be configured for monochrome and for color, and the two
configured components have different sets of collaborators or collaborations. Yet parameterizations that are concerned
only with the internals (algorithms) of a component without influence on the architecture need not be documented here.
Note that update_report interface is necessary because only Delta knows who
created the commands.
Collaborators interface Cell_ access component Physical
interface Cell_type component Repository
Notes The component is dynamically created and destroyed. It is created whenever
an Operator starts a new set of update commands. It is destroyed once these
commands have been applied to the network.
Issues How are the update commands to be recorded?
13
The notion of named interfaces supported by one or multiple components occurs in distributed component
technologies such as COM and CORBA, but is also commonly used in Java.
14
With the services of an interface we mean the use cases and operations provided by this interface or by the
component or system having this interface. This definition of service is not to be confused with the term e-services in
e.g. e-speak where an e-service is actually a component or a whole system having one or several interfaces.
Description
Describes the overall purpose of the interface in terms of its responsibilities.
Services
Services can be requested from a component or system in order to effect some behavior. For systems they
can be specified either as use cases or system operations, for components they are normally specified as
operations15. The service section contains at least the name and a short description in terms of its
responsibility for each service belonging to the interface. Depending on the level of detail and formality
chosen for the documentation, services are further specified by their signatures, using UML, C++ or Java
syntax. Further details may be added: pre- and post-conditions, possible inputs and their results, services
needed from other components in order to provide the results. Yet even a detailed description should
specify the services from an external point of view, and not describe their implementation or the internal
structure of components providing the interface. In case the services are not invoked by a procedure call
(e.g. event based systems), also specify how the services are triggered.
Protocol
The protocol section contains constraints on the order in which the services may be called. For complex
protocols a state machine representation (e.g. UML Statechart Diagram) should be used. For simple
protocols the description can be narrative text or via the statement of pre- and post-conditions on the
operations or use cases. Alternatively, sequence diagrams can be used for visualizing protocols.
Notes
List of the components that provide this interface.
Operations specified in the services section of an interface specification for a component are not necessarily
atomic. They may be abstractions of conversations where the two components actually exchange several
messages or procedure calls in order to communicate the input and output parameters of the operation
signature15. This is typically the case for user interfaces and for communications between distributed
components. If operations are not atomic, the notes section should say so, reference the name of the
conversation if different from the operation name, and give the section (e.g., a mechanisms section, or
another interface section describing the conversation protocol), appendix or separate document (e.g., the
architecture specification of this component) in which the conversation abstracted by the operation is
documented. Such documentation should include the lower-level messages or operations involved as well
as the constraints on their order (their protocol).
15
On a lower abstraction level non atomic operations become use cases of the component, having several input and
output interactions with the invoking component, which becomes an actor of the component offering the operation. An
example of a non- atomic operation could be the operation “send_email(to, cc, from, text)” of an email server. While
modeled as one operation in the architecture diagram, the actual communication could use SMTP, comprising
operations like “HELLO(hostname):status”, “RECIPIENT(… )”, “DATA(… )”, etc.
Example
Interface Cell_access
Description Allows access and modification of network cells. The network structure
can also be explored and also be modified.
Operations Operation browse_cells_in_sector(sector id, list).
Description produces list of cell_ids and their locations
belonging to the sector
Operation neighbors_of(cell_id,list)
Description lists all the neighboring cells
Operation remove_cell(target_id)
Description removes target_id cell
etc.
In communication centric systems the interfaces section may be used to specify the conversation protocol
between two components instead of the interface of just one component, thus combining two interface
specifications into one. The operations section will contain the messages exchanged, the protocol section
the constraints on the order of the messages (pre- and post conditions on the messages, or sequence
diagrams with pseudo-code commentary), and the notes specify the components involved in the protocol
and the roles they play.
<Scenarios> <Mechanisms>
(i) (ii)
The dynamic behavior section specifies the behavior of the system into more details. The scenario section
focuses on a detailed specification of the system’s operations or use cases from an external as well as
internal point of view. The mechanisms section provides important models of the systems internal
behavior not covered by the scenarios section.
<Scenario>
<Specification> <Component
Interaction Model>
(i) (ii)
System behavior can be modeled with use cases and/or system operations. A use case consists of several
steps and interactions between one or several external actors and the system in order to achieve a specific
goal. If on a given abstraction level the steps of a use case are no further decomposed, the steps are
considered as being system operations. In contrast to use cases, a system operation only has one input
interaction on the chosen abstraction level for interactions – the event or call that triggers the operation.
Each input interaction triggers a new operation. Any more detailed communication between actor and
system is abstracted away. Use cases can be used for the scenario specification as well as for the interaction
Scenario Specification
Each scenario describes a single purposeful set of interactions between some actors and the system. The
specification should describe the expected behavior of the system from an external viewpoint. A scenario
specification should avoid discussing the internal workings of the architecture. The choices for specifying a
scenario are:
• A use case16 description showing the interactions between the system and the actors in its
environment – but without mentioning the behavior of components (example see Figure 15).
• A system operation description specifying the interactions with the system for one system
operation (Figure 16 shows the system operation change_implemented; together with the system
operation enter_changes it would cover the same functionality as described by the use case
description in Figure 15).
• In an architectural reference manual, additionally pre- and post-condition specifications can be
used (example see Figure 16).
The system interface section in 3.2.2 gives a high-level description of the system interfaces, it only contains
a list of use cases or system operations. The scenario specification section describes them into more detail.
When use case descriptions are used in the scenario specification, the scenario specification can optionally
list the individual system operations being part of the use case. As a consequence the component interaction
model may be given by an interaction model for each system operation.
16
Often use cases are more appropriate for interactions with human actors as they allow to model a sequence of
interactions with the human actor in one use case, and operations are more appropriate for services requested by
software actors (other systems), as they typically have only one input event and only return one result event to the
requesting system. Another criterion for choosing the abstraction level of use cases or of system operations for
modeling the system behavior is the complexity of the individual system operations: if they are trivial, rather model on
the level of the use case the operations are part of in order to minimize the number of scenario specifications and
interaction models needed.
Example
Scenario Specification: Operator Session for Changing Network
The architecture has to be able to deal with updates to the cellular network. Updates may be entered simultaneously,
updates may be inconsistent and multiple updates may be scheduled for the same time.
Figure 15: Example CellKeeper: high-level specification and textual component interaction model for the
use case “OperatorChangingNetworkSession”
:Physical
[not OK?] 2 * :
commands to roll
cellular_network
back the network [OK?] 4*:update(c,cell_params)
operator
:Session
:Log Control
:Log
:Log 7: notify
mailserver
Figure 16: Example CellKeeper: detailed specification using pre- and post-conditions and component
interaction model using a collaboration diagram with pseudo-code specification for the system operation
“Change_implemented”
etc.
Figure 17: Example CellKeeper: an alternative component interaction model for the use case
“OperatorChangingNetworkSession” specified in Figure 15
17
The satisfaction of all the non-functional requirements is assessed in the conclusion section 3.6. Here the focus is
only on modeling important mechanisms that help to fulfill requirements concerning system behavior.
implicit invocation
push (change_loginfo) internal marschalling
Distribution of event change_loginfo to all
interested components is done by the CORBA done by event service
event service.
[to all subscribed components] push (change_loginfo)
Figure 18: Example CellKeeper: mechanism for the implicit invocation of methods of the Log component
(i)
...
(ii) (iIi)
The other views section describes the process, development and physical view of the architecture, and
shows how the logical components map into these other views. The sections specify:
• the static model (the structure and interconnections) of the processes, code components or
hardware nodes,
• the dynamic model of the processes, code components or hardware nodes for specific
scenarios (examples of interactions among the elements),
• mapping of the logical components described in sections 3.3 and 3.4 onto processes, code
components or hardware nodes.
All three views are optional. Whether they are included in the architecture document or not depends on the
purpose and audience of the document as defined in section 3.1.
Example
1 <<process>> 0..n <<thread>>
main session
Main 1 Session_control
Executor 0..n Delta
Cell id generator
Example
Implementation mapping:
• For each logical component a directory is created that contains all code files belonging to that
component.
• For each class a separate file is created.
Example
http
Cellular Application Server Database Server
1 <<process>> 1 <<process>>
main database
direct access CORBA
with terminals 1 <<process>> 0..n <<process>>
login server Log
(i) (ii)
The conceptual framework refers to a network of concepts and the relationships between them. These
concepts are documented in a glossary-like form, which we call a domain lexicon, and visualized in a
diagram, the lexicon diagram. In a domain lexicon each of the important terms in the problem domain and
those terms used in discussions about the system and its architecture are defined. The most important aspect
of the lexicon is to have the definitions of terms be as specific and unambiguous as possible. Figure 24
contains an example.
A supplemental model of the conceptual framework is the lexicon diagram18. It depicts graphically the
relationships between concepts and can convey complex relationships at a glance (see Figure 25 for an
example). The UML class diagram notation is used for the lexicon diagram: concepts are modeled by the
class symbol (without operation or attribute compartment), relationships between concepts by
generalization, aggregation and association symbols19.
It is appropriate for the conceptual framework section to contain other diagrams or pictures explaining the
terms of the problem domain (example see Figure 26). This is especially helpful if the concepts are
geometric or visual in nature.
Example
Cell - A cell in a cellular telephone network handles all the calls of mobile phones in the area it covers. To
do this, it transmits identifying information on a beacon radio frequency and handles the "traffic" on other
frequencies. In busy areas like cities, cell diameters are measured in meters, in rural areas the diameters
can be up to 64 km. The only limit is the interference of cells that reuse the same frequency.
Base station - A base station implements a cell. A base station is a computer plus radio equipment that is
connected to a telephone exchange. Base stations are located on a "site". The sites are the most visible
part of a cellular network because of the very obvious antenna masts that are visible all over the country.
One site can host multiple base stations. The base stations are connected to a telephone exchange that,
besides switching phone calls, is also responsible for controlling the operation of the cells. In the GSM
system it is called the Base Station Controller (BSC).
18
As the lexicon diagram models the concepts of the problem domain and not the software components it is called the
domain class diagram in some OOAD methodologies.
19
Alternatives to UML class diagrams are semantic networks, concept maps (see Novak[7]), or any other graphical
representation for describing ontology.
has_neighbor sector_id
Cell Mobile_Phone
cell_id
BSC
implemented_by
Cell has_neighbor
Base_Station Fault develops
cell_id
Constraints: located_on
Figure 25: Example CellKeeper: lexicon diagram for the CellKeeper domain
Example
Above picture shows the cells of a cellular network with the frequencies assigned to the individual cells. A
cell in a cellular telephone network handles all the calls of mobile phones in the area it covers. To do this, it
transmits identifying information on a beacon radio frequency and handles the "traffic" on other frequencies.
When a network is initially built, the area that is covered by each cell is very large. When the number of
subscribers increases, capacity is added by splitting cells. This results in more and smaller cells, offering
more total capacity. This technique makes cellular networks highly scalable. In busy areas like cities, cell
diameters are measured in metres, in rural areas the diameters can be up to 64 km. The only limit is the
interference of cells that reuse the same frequency.
20
Inconsistencies between the architecture document and other requirements documents are dealt with in section 3.1. of
the architecture document.
21
Needed for conformity with IEEE Recommended Practice for Architectural Description
5. References
[1] Bass L., Clements P. and Kazman R., Chapter 9 of Software Architecture in Practice, Addison-
Wesley, 1997.
[2] IEEE Draft for Standard, IEEE P1471/D5.1 Draft Recommended Practice for Architectural
Description, October 1999
[3] CellKeeper, a cellular network manager, http://www.bytesmiths.com/pubs/DesignFest96/cells.html
[4] Kruchten, Philippe, The 4+1 View Model of Architecture, IEEE Software, November, 1995. A version
of the this paper is also available on line at: http://www.rational.com/uml/resources/whitepapers/.
[5] Shaw, Mary and Garlan, David, Software Architecture: Perspectives on an Emerging Discipline,
Prentice Hall, 1996.
[6] Buschmann, Frank, et al., Pattern-Oriented Software Architecture, A System of Patterns, John Wiley
& Sons, 1996.
[7] Novak, J.D. and D. B. Gowin, Learning How to Learn, New York: Cambridge University Press, 1984.
[8] Youngs, R., et al., A standard for architecture description, IBM Systems Journal, Vol 38, No. 1, 1999.
1 Introduction: general information about the architecture document, other related documents
2 System Purpose: purpose, functional and qualitative characteristics of the system from a black box
point of view
2.1 Context: description of the context of the system and the problem it solves
2.2 System Interface: services provided by the system
2.3 Non-functional Requirements: principles of the architecture, qualities of services, external
constraints
3 Structure: logical view of the static structure of the architecture in terms of its components, their
interconnections, and the interfaces and operations offered by the components
3.1 Overview: architecture diagram(s) for overall structure, commentary containing rationale,
architecture style, architectural constraints and alternative architectures
3.2 Components:
•for each component: description of the component in terms of its responsibilities,
interfaces it offers, collaboratoring components, possibilities for parameterizations, and
constraints
3.3 Interfaces:
•for each component interface: description of the interface, its operations and
constraints on the order of operations, optionally specification of the operations
4 Dynamic Behavior: specification of the system behavior, collaboration of components for achieving
system behavior
4.1 Scenarios: architecture diagram(s)
for each scenario:
•specification of the scenario as system operation or use case specification for some or
all of the services provided by the system
•component interaction model of the scenario
4.2 Mechanisms (optional): explanation of and interaction models for important mechanisms
5 Other Views:
5.1 Process View (optional): architecture diagrams of the processes showing the mapping of
components to processes
5.2 Development View (optional): mapping of logical components to code components,
structure of code components
5.3 Physical View (optional): architecture diagrams of the hardware infrastructure showing the
mapping of components, processes and code files to hardware nodes
5.x Additional Sections (optional): sections for additional models and viewpoints not specified
in this template
6 Conceptual Framework: definition of the problem domain specific concepts and terms and their
relationships
7 Conclusion: advantages and limitations of the architecture in respect to non-functional requirements,
open issues
System Component
External view • Context Section 3.2.1. • Components Section 3.3.2,
• System Interface Section 3.2.2. • Interfaces Section 3.3.3
• Scenario specifications in Dynamic Behavior Section
3.4.
Internal view • Component interaction models for scenarios in See external system views in the architecture document for
Dynamic Behavior Section 3.4. the specific component.
Viewpoint specifications are required by the IEEE Recommendation for Architectural Description [2].
They have to be referenced in the introduction section of an architecture document in order for the
document to be conformant to [2]. Stakeholders addressed in the viewpoints depend on the type of
architecture document (overview or reference manual) to be created (see chapter 2 of this paper).
Stakeholders and their concerns can be further detailed in the introduction section of the architecture
document.
22
The template can be used to create an architectural overview for a wide range of stakeholders – this is typically done
in the early phases of the development. Or the template can be used to create an architectural reference manual, which
is a living document mainly for system developers and guides the system developers throughout the life cycle of the
system even in maintenance and enhancements. The template can be used for the system as a whole and/or for specific
components of the system.
23
This definition of service is not to be confused with the usage of the term ‘service’ in the context of e-services and e-
speak. There a service denotes a component, application or system being accessed over the e-speak environment. Like
components and systems, an e-service has operations or use cases that are grouped together into one or several
interfaces provided by the e-service.