Channels ▼
RSS

Parallel

ISIS and the Eclipse Process Framework


Pierre Berlandier is a Principal Consultant at ILOG, where he has designed and developed numerous rules-based applications. These applications include expert systems for configuration and design of manufactured artifacts, real-time intelligent agents for the telecommunication industry, and business rules applications for the financial services and insurance industry.


A software development methodology describes who does what, how, and when to produce a software product. In this regard, the Eclipse Process Framework (EPF) provides a general formalism to:

  • Capture the essence of the who, the what, the when, and the how, as method elements.
  • Define the different relationships between these elements.

EPF also provides a clean separation between the definition of the methodology elements and their presentation to the methodology users.

EPF encapsulates meaningful and related method and process contents in method plug-ins. The contents of plug-ins can then be extended or modified by other plug-ins. EPF provides a set of exemplary processes, the main one being OpenUP.

Content Definition

Figure 1 is a simplified view of the key EPF method elements and their relationships. The framework provides many more artifacts and relationships flavors and nuances:

  • A set of different tasks compose a discipline.
  • A certain combination of roles perform a task, using a set of guidelines to assist in the execution.
  • A task relies on input work-products to be performed and outputs other work-products and deliverables.
  • A work-product or deliverable can be based on a template.
  • The design of a work-product or deliverable can use examples, white-papers, reports, reusable assets, and the like.

[Click image to view at full size]
Figure 1: Method elements and their relationships.

The design of a methodology in EPF starts by creating the above elements and their relationships (a.k.a. "associations") within a method library using the EPF Composer, an integrated development environment (IDE) built on top of the Eclipse platform.

A set of attributes, taking the form of pure textual information or Rich Text, describe each element:

  • General information. Includes name, presentation name and brief description
  • Detail information. Includes purpose, main description, key considerations,
  • Version information. Includes version number, change date, change description, authors

The above elements come together in an organized way through the definition of Processes (Capability Patterns or Delivery Processes), which provide the concepts of Work Breakdown Structure, Team Allocation, and Work Product Usage.

EPF then allows grouping the different elements by categories: Standard and custom categories. Standard categories are split into the pre-defined software methodology concepts of Disciplines, Domains, Work Product Kinds, Role Sets, and Tools. For example, you can create a "Project Data" category under the Work Product Kinds standard category and use it to qualify work products such as test results, problem reports, weekly status reports, and the like.

In contrast, custom categories are unconstrained hierarchical, ordered collections of method elements. Their main use is to compose configurations that are published as final methodology content. A standard use of a custom category is to present the different methodology elements according to different chosen points of view. Figure 2 shows an example of a custom category which presents the components of a process by grouping an introduction, a set of concepts, the set of disciplines, roles, delivery processes and work product kinds.

[Click image to view at full size]
Figure 2: Sample custom Category

Variability

Plug-in entities bring together EPF method elements packages and processes. A plug-in can reference another plug-in so that its element definitions can reuse and extend the content of the referenced plug-in. This mechanism allows customizing the standard OpenUP content and tailoring it to the specific needs of an organization.

Method elements have a Content Variability section where the user can define how an element relates to another one, either from the same plug-in or, more often, from one of the referenced plug-ins. The variability definition can have different semantics, that can be roughly described as follows:

  • Extends. The extending element contents brings some additional information on top of the element it extends, implementing some kind of inheritance. When published, the extended element remains untouched, and the extending element shows the content of the extended element augmented (for associations) or overwritten (for attributes) with the contents of the extending element.
  • Contributes. The element contents represent some additional information on top of the element it contributes to. When published, it is now the contributed-to element that shows its own contents augmented by the contributing element's contents (associations and attributes).
  • Replaces. The element contents represent a new definition for the replaced element. When published, the replaced element shows the contents of the replacing element.
  • Extends and Replaces. This semantics acts as a combination of the above Extends and Replaces semantics. When published, it is now the base element that shows its own contents augmented with the contents of the extending element. The extending element remains untouched.

The concept of variability with its various semantics has been key in allowing the ISIS (ILOG Solution Implementation Standard) methodology to:

  • Layer the method contents from generic to product-specific.
  • Carve and distribute parts of the methodology for different recipients.

Configuration

Configurations define which previously created elements should be published to the methodology users. A simple way to think about a configuration is as a set of views, each being materialized as a tab in the methodology web portal and presenting the contents of a custom category.

Configurations allow for some filtering on what to publish by selecting in each plug-in, which categories (standard or custom) should participate or should be removed from the published material. The concept of configuration allows the flexibility of building different, targeted instances of a methodology, based on the same compendium of material, with minimal investment.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video