4.1 Modular Meta Model
The AADL is a sizable language. Representation of the AADL meta model as a single unit would make it difficult to understand and maintain.
The AADL is extensible in that annex-specific sublanguages can be introduced. The modular meta model approach allows meta models for such sublanguages to be defined separately in Ecore and added to the core AADL meta model.
The meta model for the core AADL is divided into six meta model packages:
  • Core: defines the concepts of component type, implementation, and subcomponent as abstractions, as well as packages and modes.
  • Component: defines the concrete classes for the different categories of components, including the constraints on their subcomponents.
  • Feature: defines the features of component types.
  • Connection: defines the connections between component features.
  • Flow: defines flow related elements of the AADL.
  • Property: defines the elements for associating property values and for introducing new property types and properties via property sets.
Classes in one package of the meta model can be referenced by other meta model packages. This is done by preceding the Class name with the package name – separated by a double colon (“::”). Multiple graphical diagram views have been defined for some of the meta model packages in order to keep them readable.
The meta model for an initial AADL instance representation has been defined as a separate meta model package.  Its details are discussed in section Annex C.5.