architecture design step and not as an afterthought
during the transformation for the final system.
3 PROPOSED METAMODEL
In order to build a solid system, it is essential to
systematically take into account all the reflections
regarding the system at the architecture design step
and not as an afterthought during the transformation.
From this point of view, we can not describe
software systems with an arbitrary architectural style
but we must select one style among various. Of
course, style provides guidance for building a broad
class of architectures in a specific kind of system,
but what are the benefits that the software system
gains? An architectural style, answers the
architecture design needs and its quality
characteristics. Therefore, we suggest placing the
architecture quality evaluation as control-center for
designing software architecture systems.
3.1 Description of ArchRQMM
In order to support the evaluation of quality of
architectural artifacts produced in architectural level,
we have defined mainly three complementary
models. We use software architecture model to
describe architectures based on the core concepts in
each ADL, we use requirement model to represent
architect’s needs and the quality goals and we use
architecture quality model to evaluate and analyse
the quality of the whole software system as well as
its architectural artifacts. The key-idea of the
proposed metamodel is the combination of
measurable standards at the level of architecture
with OCL constraints, resulting to the overall
software system quality increase and conformance.
3.1.1 Software Architecture Model
The core elements of the software architecture
model are components, connectors and
configurations; each of these elements has an
interface to interact with its environment as shown
in Figure 1. Besides, the abstract class Artifact
gathers all the structural and behavioral information
that is shared by components, connectors, and
configurations and therefore does not have
conceptual correspondence in traditional
architectural models. Architecture may be composed
of many artifacts. Components are potentially
composite computational encapsulations that support
multiple interfaces known as ports. Ports are bound
to ports on other components using first-class
entities called connectors, which have the so-called
roles that are attached directly to ports.
Configurations are the abstractions that represent
graphs of components and connectors. Attachments
define set of port/role associations. Bindings connect
two interfaces of the same type (two ports or two
roles). Architectural styles define sets of types of
components, connectors, properties, and sets of
constraints on how they can be combined. The
software system can be described by an architecture
with different styles. We have selected four styles
Layers, Pipe-Filter, Blackboard, and Client-Server
(Buschman, Henney and Schmidt, 2007) because
they are the most commonly used in practice and
they represent a number of different domains and
concerns. Layers demands grouping of components,
Pipe-Filter handles streams of data, Client-Server is
frequently used in distributed systems, and
Blackboard is for dynamic configurations. Although,
we limit ourselves to only four styles, we emphasize
that our metamodel is not meant to be exhaustive.
3.1.2 The Requirement Model
The architect’s needs (Requirement class) should
fulfil particular architecture artifacts (Artifact class
in the model). Usually the necessities of a software
system are divided in to two groups: Functional
requirements and Non-Functional requirements.
Functional requirements define the functional and
executive purpose of the system. Non-functional
requirements mostly focus on how a software system
works and performs. In our case, functional
requirements derived from the architect’s needs and
non-functional requirements are more related to the
problem’s environment or context such as the
system’s operational environment and the problem’s
real word. Non-functional-requirements are
associated with a quality goal (QualityGoal class)
that must be satisfied to ensure the accomplishment
of the functionality in the final software product.
The non-functional-properties (Non-Functional-
Prop class), which are related to quality
requirements are formalized using the standard ISO-
9126 (ISO-IEC, 2001). Based on final quality aims,
the developed architecture for a given software
system can be evaluated to satisfy quality goals.
3.1.3 Software Architecture Quality Model
The model defines the quality of the whole software
system as well as its architectural artifacts in terms
of quality factors and associated metrics that are
formal measured attributes of the software. An
ICSOFT 2009 - 4th International Conference on Software and Data Technologies
76