Components
The second level of the
Concern Manipulation
Environment (CME) Architecture is the components level.
The CME components which provide much of the higher-level capabilities
required by the CME tools. Components
are typically independent of task, lifecycle, paradigm, or environment,
and have tailorable, adaptable behaviors.
Concern
Composition Component (CCC): CCC composes (weaves) together
different artifacts (in any of the supported artifact notations).
CCCs composition capability is extremely flexible and powerful,
and it supports a wide variety of AOSD paradigms and composition
semantics. Developers of compositor or weaver tools can build their
tools on CCC, using its extensibility features and parameterization
to achieve the desired composition semantics.
Concern
space Management Component (Conman): Conman supports the representation
of concerns, their interrelationships, and constraints that govern
their definition. Conman defines a meta-model of concerns that is
intended to be specialized to reflect the semantics of particular
AOSD paradigms. This meta-model will be part of the basis for interoperation
among different AOSD paradigms.
Analyzers:
We anticipate the need for a variety of analysis capabilities to
facilitate various AOSD activities. Such capabilities may include
data-flow and control-flow analyzers, reachability analyzers, etc.
Concern
Extractor:
This component will provide a collection of capabilities required
to facilitate concern extraction (see the Extract
tool description), including declaration completion, completeness
and reachability analyses, slicing, etc. The Concern Extractor component
will support a wide range of extraction semantics, artifacts, and
policies, including extraction of "cross-lifecycle" concerns
(e.g., to extract all of the design, code, and test artifacts associated
with the satisfaction of a given requirement).
Refactoring
and remodularization: When identifying new concerns in existing
software, it may be the case that a developer determines that the
current structure of the software could be improved by "pulling
out" pieces associated with a particular concern (i.e., untangling
concerns). The refactoring and remodularization component will provide
a set of capabilities that are useful during concern identification.
Frameworks
The third level of the
CME Architecture
contains the CME frameworks. These provide language- and paradigm-independent
access to low-level concern representation and manipulation capabilities,
and which support pluggability to permit the use of different underlying
engines.
Concern
Assembler Toolkit (CAT):
CAT provides common support for assembling artifacts to represent
combined (composed or woven) or extracted
results
CAT supports the construction of concern assemblers appropriate
to a variety of different artifact manipulation
engines.
Concern
Informant Toolkit (CIT):
CIT defines a common interface to information about object-oriented
elements. It supports the construction of concern informants appropriate
to a variety of different artifact manipulation
engines.
Pattern
Matcher (Puma):
Puma supports selection and correspondence of arbitrary elements
with powerful selection criteria over product-sets rather than simple
sets of artifacts. It provides frameworks and libraries for handling
a wide variety of data organization, retrieval, and query formation
strategies, and an open set of query operators and languages.
Concern
Navigation of Rationale Manager (CNARI): AOSD typically is performed
on large-scale software, and the results produced by various pieces
of AOSD tooling may be difficult to understand. CNARI provides common
support for recording decision rationale chains, reporting errors,
and providing explanations to users about what happened, and why
it happened.
Engines
The lowest level of the
CME Architecture
contains the CME engines, which define language- and paradigm-dependent
access to low-level concern representation and manipulation capabilities,
such as Java source or binary, UML/XMI, etc.
CAT/BT: Java
binary file manipulator engine for CAT.
CAT/JS: Java source file manipulator engine for CAT
in Eclipse.
CAT/XMI: XMI 1.0 file manipulator engine for CAT.
CATCall: CAT couple interface for attaching
many engines to one client
CATSerializer: CAT serializer interface
for producing Concern Assembly Language (XML) files
CIT/BT: Java binary file manipulator engine for CIT.
|