tem. ’External visible properties’ are the assumptions other elements can make of an
element, such as services it provides or performance characteristics. Generally, systems
comprise more than one structure, and no structure alone is the architecture. All systems
encompass an architecture as any system can be viewed as a composition of elements
with relationships among them.
[14] states that the architecture of a system is a comprehensive framework that de-
scribes its form and structure, including its components and their organization. Further-
more, ’architectural design represents the structure of data and program components
that are required to build a computer-based system. It considers the architectural style
that the system will take, the structure and properties of the components that constitute
the system, and the interrelationships that occur among all architectural components of
the system’ [14, p.255].
Jacobson, Booch and Rumbaugh [15] define software architecture in the Unified
Process methodology as: encompassing the significant decisions about the organization
of a software system; the structural elements and their interfaces that will comprise
the system together with their behaviour as specified in the collaborations among those
elements; the composition of the structural and behavioural elements into progressively
larger subsystems; as well as the architectural style that guides this organization.
[16] identifies two common elements of system architecture, viz. the highest-level
breakdown of a system into its parts and the decisions that are hard to change. He also
states that a system comprises of multiple architectures, and that the view of what is
architecturally significant, can change over a system’s lifetime.
From these definitions, we maintain that an architecture is a description of the com-
ponents that encompass a system. The description of the components must include its
organization or structure, its defining features or properties, as well as their relationships
together with available interfaces that allows interaction with it. With these definitions
in mind, we argue that the following are important criteria during evaluation of existing
and development of new architectures:
– Architecture is defined within a certain context, where this context determines the
important aspects of a system, the components necessary to realize the system,
the properties of components as well as the relationships between components and
external entities. This relates to the notion of multiple architectures or structures
defined by views as introduced by [1], [16] and [15].
– An architecture is a model of the system in the given context, where a model is an
abstraction of a real-world representation[17]. It is important to realize that a model
provides a means to view only the significant aspects of the entire system.
Due to the progression of the design of architectural models, some architectural re-
currences evolved. These are described as architectural patterns[1], also referred to as
architectural styles [14]. A pattern is the description of a problem that occurs repeti-
tively within a specific environment, as well as the core of the solution to that problem
in such a way that the proposed solution can be reused. Patterns are rooted in practice
and are referred to as best practice descriptions [16]. Examples of the best known ar-
chitectural patterns include, but are not limited to, the client/server architectural pattern
[18,15], Peer-to-Peer architectural pattern [18, 15], three-tier architectural pattern [18,
15,16], and the layered architecture or layers pattern [15].
165