A later definition, given in
An exhaustive list of definitions of
the notion of software architecture is given
at the Web site of the Software Engineering Institute (SEI),
of which the url is given in slide Elements.
At the time of writing, the most comprehensive book
concerning software architectures is
The software architecture of a program or computing system
is the structure of the system, which comprises
software components, the externally visible properties
of those components, and their interrelationships.
Note the stress on externally visible properties
here.
It is meant to express that both components and their
relations must be described at a suitable level of
abstraction.
Also note that the phrase relationships between components
may cover quite a lot.
For example, when considering the architecture of a
Web application,
issues such as communication protocols and
document standards must be considered as well.
In addition, the technological infrastructure,
elements of which are given in slide infrastructure,
must also be taken into account.
In the definition or rather collection of definitions, given
by the IEEE Architecture Working Group,
for the terms architect,
architectural description,
stakeholder and viewpoint,
utmost care is taken to suppress the phrase structure.
Instead, the notion of architecting is defined
as defining, maintaining, improving and
certifying proper implementation of an architecture,
and an architecture as a collection of views
relevant to the stakeholders of a system.
Explicit attention for the architecture of a system becomes
increasingly relevant as the complexity of the system grows.
As argued in (class hierarchies) (wrappers) (horizontal, vertical, metadata) (reference models, infrastructure, policies) (standards)
In business applications a distinction can be made
between horizontal components
(covering general functionality, such as GUI-aspects
and document interoperability),
vertical components
(covering domain-specific functionality for one
area of business, such as finance),
and meta-data,
representing the more volatile, knowledge-level
aspects of a system.
draft version 0.1 (15/7/2001)Elements of architecture
Models and views
Definitions
Technological infrastructure
Distributed object architectures
When considering the architecture of a system,
invariably the technological infrastructure
plays a role.
In particular, when considering client/server
or distributed object systems the choice for
respectively a particular
client and server platform, middleware and
communication infrastructure
may to a large extent determine the characteristics
of the software architecture.
Distributed object patterns
[]
readme
course
preface
1
2
3
4
5
6
7
8
9
10
11
12
appendix
lectures
resources
eliens@cs.vu.nl