(1) An AADL specification consists of package and property set declarations that are considered to be global declarations.
(2) Packages provide a way for organizing collections of component type and implementation, feature group type, annex library declarations along with relevant property associations.
(3) Property sets provide extensions to the core AADL in the form of new properties and property types in support of additional modeling and analysis capabilities. Similarly annex libraries and annex subclauses provide extension to the core AADL to annotate the base model through the use of sublanguages.
(4) The content of packages, e.g., classifiers, can be referenced from anywhere by qualifying the classifier reference with the package name. The content of property sets, i.e., property type, property constant and property definitions, can be referenced by qualifying the property type, constant, or property reference with the property set name. References to predeclared properties do not require qualification by property set. Classifiers in other packages and properties in property sets can only be referenced with those packages and property sets are listed in the with declaration of a package or property set.
(5) System instances are identified to processing tools and methodologies by referencing a system implementation component as the root of the system instance (see Section 13.1).
AADL_specification ::=
( package_spec | property_set )+
Naming Rules
(N1) An AADL specification has one global namespace. The package and property set identifiers reside in this space and must be unique.
(N2) These package and property set identifiers qualify the names of individual elements contained in them when they are referenced.
(N3) Package declarations represent labeled namespaces for component type, component implementation, feature group type, and annex library declarations.
(N4) Property set declarations represent labeled namespaces for property type and property definition declarations.
(N5) Packages and property sets may be separately stored. Those packages and property sets are considered to be part of the global namespace.
(N6) Defining identifiers in AADL must not be one of the reserved words of the language (see Section 15.7).
(N7) The AADL identifiers and reserved words can be in upper or lower case (or a mixture of the two) (see Section 15).
(N8) The AADL does not require that an identifier be declared before it is referenced.
Semantics
(6) An AADL specification provides a global namespace for packages and property sets. Items in packages and property sets can refer to items in other packages and property sets.
(7) A package is used to introduce new component types, component implementations, feature group types, and annex libraries.
(8) A property set is used to introduce new property types and properties (see section 11.1). They extend the predefined set of properties of the core AADL.
(9) 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
(10) 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.