IBM Banner
FindNewsProductSupportBusiness solutionsInside IBMInterest Groups
blank space
CME Logo
 
Home
Vision
Papers
Tools
Components
HyperJ
Guestbook
Send us mail

Concern Manipulation Environment Components, Frameworks, and Engines

 

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). CCC’s 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.


Research Footer