![]() ![]() |
||||
|
||||
An AADL specification is a set of declarations:
component classifier, port group classifier, annex
library, package, and property-set. Package and property set declarations are global declarations.
The content of global declarations can be referenced by any declaration. Component classifiers,
port group types, and annex libraries that are declared directly in an AADL specification are
anonymous declarations. They can only be referenced by another anonymous declaration.
Packages provide a way for organizing collections of
component classifier, port group type, annex
library declarations along with relevant property associations.
Property sets provide extensions to the core AADL that
support additional modeling and analysis
capabilities.
System instances are identified to processing tools and
methodologies by referencing a system
implementation component as the root of the system instance (see Section 12.1).
Syntax
AADL_specification ::=
{ AADL_global_declaration
| AADL_declaration }+
AADL_global_declaration ::= package_spec
| property_set
AADL_declaration ::=
component_classifier
| port_group_classifier
| annex_library
component_classifier ::=
component_type |
component_type_extension |
component_implementation
| component_implementation_extension
port_group_classifier ::=
port_group_type | port_group_type_extension
Naming Rules
The AADL has one global namespace. The package
and property set identifiers comprising this
space must be unique. These identifiers qualify the names of individual elements when they are
referenced externally. They can be referenced from other declarations and anonymous
declarations (see below). Package declarations represent labeled namespaces for component
type, component implementation, port group type, and annex library declarations. Property
sets
represent labeled namespaces for property type and property name declarations.
An AADL specification has one anonymous namespace.
In this are found the identifiers of
component classifiers, port group classifiers, and annex libraries that are declared directly in an
AADL specification. These identifiers must be unique in the anonymous namespace. Declarations
of component classifiers and port group types can be referenced from other component classifier
declarations in the anonymous namespace. Any annex library items declared in the anonymous
namespace are only accessible from annex subclauses in component classifiers in the anonymous
namespace.
AADL declarations in an AADL specification can refer
to packages and property sets that may be
separately stored. Those packages and property sets are considered to be part of the global
namespace.
Defining identifiers in AADL must not be one of the reserved
words of the language (see Section
13.7).
The AADL identifiers and reserved words can be in upper
or lower case (or a mixture of the two)
(see Section 13).
The AADL does not require that an identifier be declared
before it is referenced.
Semantics
An AADL specification provides a global namespace for
packages and property sets and an
anonymous namespace for component types, component implementations, annex libraries, and
port group types. Items in the global namespace and their content can be named by items in the
global and in the anonymous namespace. Items in the anonymous namespace can only be named
by items in the anonymous namespace.
Component type and component implementation declarations
model execution platform and
application software components of a system. A component type denotes externally visible
characteristics of a component, i.e., its features and its properties. A component implementation
denotes the internal structure, operational modes, and properties of a component. A component
type can have several component implementations. This can be used for example to model
product line architectures runing on different execution platforms. Packages allow such
declarations to be organized into separate namespaces.
Port group types provide the definition of an interface
to a component that represents a collection of
ports or port groups defined within the component implementation (see Section 8.2). This group
of
ports may be accessed externally as a single unit.
A property set is used to introduce new property types
and properties (see section 10.1). They
extend the predefined set of properties of the core AADL.
Declarations in an AADL specification can refer to packages
and property sets declared in
separately stored AADL specifications. This allows packages and property sets to be stored
separately and used by multiple AADL specifications. Mechanisms for locating such separately
declared packages and property sets are tool specific.
Processing Requirements and Permissions
A method of processing must accept an AADL specification
presented as a single string of text in
which declarations may appear in any order. An AADL specification may be stored as multiple
pieces of specification text that are named or indexed in a variety of ways, e.g. a set of source
files, a database, a project library. Preprocessors or other forms of automatic generation may
be
used to process AADL specifications to produce the required specification text. This approach
makes AADL scalable in handling large models. |
||||