Extensibility overview

IBM Rational modeling products can be extended to address the specific needs of an entire company, a project, or an individual user. An extensibility effort can be as simple as defining some additional properties or as advanced as defining an entire new plug-in.

The extensibility features in the Rational modeling products build on the open-source Eclipse components to support a variety of efforts, including the following typical extensions:

All of the above examples use a combination of application programming interfaces (APIs), extension points, specialized development environments, and utilities. Review the extensibility components provided by Eclipse and the Rational modeling products to learn how to implement your extensions.

Eclipse extensibility

The Rational modeling products themselves are built on the extensibility architecture provided by Eclipse, and this architecture is also available to you.

Plug-ins and the extension points that they provide are foundational to Eclipse extensibility. In fact, Eclipse is made up of a set of plug-ins. A plug-in is coded in Java and resides in a plugins directory. Each plug-in includes a manifest file that declares the extension points it provides to other plug-ins and the extension points it is making use of from other plug-ins. The Plug-in Development Environment (PDE), which is part of the Eclipse Software Development Kit (SDK), provides a set of tools to assist in all stages of plug-in development.

The Java development tooling (JDT) provided by Eclipse includes a Java IDE that can be used to add Java-specific behavior to the Eclipse platform create plug-ins that interact with Java programs or resources.

An Eclipse component that is more closely related to modeling is the Eclipse Modeling Framework (EMF). Tools and applications built on this framework can generate efficient, customizable Java code from models. Within EMF, models are defined using XML Metadata Interchange (XMI). This standard file format eases model exchange between tools and the manipulation of related data.

For model access at the appropriate level of abstraction, and in step with the Unified Modeling Language 2.0 specification, use the UML2 APIs. These APIs provide an EMF-based implementation of the UML 2.0 metamodel.

Product extensibility

The extensibility capabilities provided by the Rational modeling products build on top of the Eclipse features, in the form of additional plug-ins and related extension points and APIs. In addition, the Rational products offer a unique capability for extending the workbench without creating a formal plug-in, through pluglets.

The Modeling APIs allow you to manipulate models. Of the included packages, the Modeling Services Layer (MSL) API is noteworthy because it is useful for batched model change validation and notification. The Notation API exposes aspects of diagram appearance, including color and size.

The Patterns API describes the patterns framework, which can be used to apply patterns to a set of model elements. This API supplements the pattern authoring and application capability provided directly in the modeling products.

The Transformations API describes the transformation framework, which is designed to transform one model into another, or into another metamodel. Only transformations created in Rational Software Architect will generate code; Software Architect ships with support for Java and C++ transformations, but the framework can be used to suppport other languages.

The RAS API is used to manipulate assets that conform with the Reusable Asset Specification, providing functionality that builds on the RAS capabilities in the modeling products.

Pluglets are Java applications that provide an alternative to plug-ins for extending the workbench. Like plug-ins, pluglets provide access to the APIs associated with plug-ins, and pluglet authors can use the Java development environment. However, the pluglet can be tested in the same instance of the workbench and a menu item is added for running the pluglet you create.

The Pluglets API exposes the properties and services used by pluglets.

The Rational modeling products continue to provide full support for using, creating, and extending standard Eclipse plug-ins.

Terms of use | Feedback
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.