|
The Concern Manipulation
Environment (CME) includes a collection of end-user tools,
which aid developers in performing full-lifecycle aspect-oriented
software engineering. These tools are customized for particular
tasks (e.g., creating a variant or adding a feature), lifecycle
stages or artifacts (e.g., design or code, using UML,
Java source, or Java byte codes), AOSD paradigms (e.g., AspectJ,
Hyper/J, DJ,
Composition
Filters), and environments (e.g., Eclipse,
Stellation).
The CME currently supports
a small set of initial tools, and more will be added in the future.
Brief descriptions of the available and still-to-come tools are
given below. Note that some of these descriptions are elaborated
upon in the CME handout.
The tools discussed here
correspond to the Tools layer of the CME
architecture.
Concern
Explorer for Eclipse:
An
Eclipse-based tool that supports
the creation and manipulation of concern models and composition
over Java software using Hyper/J2. This tool
is provided an Eclipse plug-in, and it is well-integrated into the
Eclipse Java Development Toolkit. Developers can use the Concern
Explorer for Eclipse at any stage of Java development. It works
with standard Java source code, as well as with Java byte codes.
Concern
Modeller: Support
for concern modeling is provided at present through the Concern
Explorer for Eclipse; eventually, it will be supported independently,
as concern modeling spans all stages of the software lifecycle.
Users can create concern models that reflect the structure of all
of the concerns in their software, not solely the one reflected
by the software's class structure, and concerns may overlap
(i.e., two concerns can contain the same pieces of software) or
cross-cut (i.e., the structure of one concern is defined
in terms of the structure of another). The concern model can include
concerns, which contain units (pieces of software
artifacts) and/or other concerns (aspects are special kinds of concerns);
relationships among concerns and among units; constraints
that govern the behavior of collections of concerns or units; contexts,
which are collections of elements (units or concerns) with relationships
and/or constraints that apply to the elements within that context;
and compositions, which are contexts that support composition
or weaving. Concerns and other concern model elements can be identified
at any stage of the software lifecycle, including on existing software.
Hyper/J2:
This is a stand-alone compositor tool that supports Hyper/J-style
concern definition and composition.
Hyper/J2 is only one
compositor tool, which supports one particular AOSD paradigm. Other
compositor or weaver tools, which support other languages and/or
AOSD paradigms (e.g., AspectJ), may also be usable from within the
CME in the future.
HyperProbe:
HyperProbe facilitates the insertion of probes into existing software
to aid in the task of problem determination. The probes are defined
as separate aspects, and are composed into existing Java binaries.
HyperProbe has been used successfully in industrial settings.
Design
Development Tool:
The Design Development Tool will support aspect-oriented software
design in UML.
Extend:
A common activity in software engineering is to develop extensions
or variants of existing software. The Extend tool will specifically
facilitate this activity.
Extract:
A concern model is an abstract, virtual view of a collection of
software artifacts and artifact fragments. The Extract tool takes
one or more concerns from a concern model and generates usable,
correct software artifacts that are structured based on that concern
model.
|