Subject-oriented Programming - Multi-dimensional Separation of Concerns, Hyper/J, and The Concern Manipulation Environment

Multi-dimensional Separation of Concerns, Hyper/J, and The Concern Manipulation Environment

The original formulation of subject-oriented programming deliberately envisioned it as a packaging technology – allowing the space of functions and data types to be extended in either dimension. The first implementations had been for C++, and Smalltalk. These implementations exploited the concepts of software labels and composition rules to describe the joining of subjects.

To address the concern that a better foundation should be provided for the analysis and composition of software not just in terms of its packaging but in terms of the various concerns these packages addressed, an explicit organization of the material was developed in terms of a multi-dimensional “matrix” in which concerns are related to the software units that implement them. This organization is called Multi-Dimensional Separation of Concerns, and the paper describing it has been recognized as the most influential paper of the ICSE 1999 Conference

This new concept was implemented for composing Java software, using the name Hyper/J for the tool.

Composition and the concept of subject can be applied to software artifacts that have no executable semantics, like requirement specifications or documentation. A research vehicle for Eclipse, called the Concern Manipulation Environment (CME), has been described in which tools for query, analysis, modelling, and composition are applied to artifacts in any language or representation, through the use of appropriate plug-in adapters to manipulate the representation.

A successor to the Hyper/J composition engine was developed as part of CME which uses a general approach for the several elements of a composition engine:

  • a query language with unification to identify join points,
  • a flexible structural-attachment model,
  • a nested-graph specification for ordering identified elements,
  • and a priority ordering specification to resolve conflicts among conflicting rules.

Both Hyper/J and CME are available, from alphaWorks or sourceforge, respectively, but neither is actively supported.

Read more about this topic:  Subject-oriented Programming

Famous quotes containing the words separation, concern, manipulation and/or environment:

    Like sleep disturbances, some worries at separation can be expected in the second year. If you accept this, then you will avoid reacting to this anxiety as if it’s your fault. A mother who feels guilty will appear anxious to the child, as if to affirm the child’s anxiety. By contrast, a parent who understands that separation anxiety is normal is more likely to react in a way that soothes and reassures the child.
    Cathy Rindner Tempelsman (20th century)

    The pedigree of Honey
    Does not concern the Bee,
    Emily Dickinson (1830–1886)

    Denotation by means of sounds and markings is a remarkable abstraction. Three letters designate God for me; several lines a million things. How easy becomes the manipulation of the universe here, how evident the concentration of the intellectual world! Language is the dynamics of the spiritual realm. One word of command moves armies; the word liberty entire nations.
    Novalis [Friedrich Von Hardenberg] (1772–1801)

    The poorest children in a community now find the beneficent kindergarten open to them from the age of two-and-a-half to six years. Too young heretofore to be eligible to any public school, they have acquired in their babyhood the vicious tendencies of their own depraved neighborhoods; and to their environment at that tender age had been due the loss of decency and self-respect that no after example of education has been able to restore to them.
    Virginia Thrall Smith (1836–1903)