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:
“On a subconscious level your child experiences separation from you as a punishment. And if he is to be rewarded with your return, he must be very good.... Eager for you to come back, your finicky son would probably eat liver if your baby-sitter served it, and he wouldnt dream of resisting her at bathtime.”
—Cathy Rindner Tempelsman (20th century)
“There was only one catch and that was Catch-22, which specified that a concern for ones own safety in the face of dangers that were real and immediate was the process of a rational mind.... Orr would be crazy to fly more missions and sane if he didnt, but if he was sane he had to fly them. If he flew them he was crazy and didnt have to; but if he didnt want to he was sane and had to.”
—Joseph Heller (b. 1923)
“The basic tool for the manipulation of reality is the manipulation of words. If you can control the meaning of words, you can control the people who must use the words.”
—Philip K. Dick (19281982)
“Autonomy means women defining themselves and the values by which they will live, and beginning to think of institutional arrangements which will order their environment in line with their needs.... Autonomy means moving out from a world in which one is born to marginality, to a past without meaning, and a future determined by othersinto a world in which one acts and chooses, aware of a meaningful past and free to shape ones future.”
—Gerda Lerner (b. 1920)