Content deleted Content added
Minilexikon (talk | contribs) m Structured by grouping headings |
→Multi-dimensional separation of concerns, Hyper/J, and the Concern Manipulation Environment: added anchor for "Multi-dimensional separation of concerns"; MOS:NOBOLD (the term doesn't redirect here); MOS:STRAIGHT quotes |
||
Line 1:
{{Programming paradigms}}
In [[computing]], '''subject-oriented programming''' is an [[Object-oriented programming|object-oriented]] [[programming paradigm|software paradigm]] in which the state (fields) and behavior (methods) of objects are not seen as intrinsic to the objects themselves, but are provided by various subjective perceptions (
Subject-oriented programming advocates the organization of the [[Class (computer science)|classes]] that describe [[Object (computer science)|objects]] into
==Relationships==
Line 20:
==Dimensions==
==={{anchor|Multi-dimensional separation of concerns}}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++,<ref>Harold Ossher, Matthew Kaplan, William Harrison, Alexander Katz and Vincent Kruskal, Subject-Oriented Composition Rules, Proceedings of 1995 Conference on Object-Oriented Programming Systems, Languages, and Applications, October 1995</ref> and Smalltalk.<ref>Hafedh Mili, William Harrison, Harold Ossher, Supporting Subject-Oriented Programming in Smalltalk, Proceedings of TOOLS USA 96, August 1996</ref> 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
This new concept was implemented for composing [[Java (programming language)|Java]] software, using the name '''Hyper/J''' for the tool.<ref>Harold Ossher, Peri Tarr. Hyper/J: Multi-dimensional separation of concerns for Java, Proceedings of the 23rd International Conference on Software Engineering, Toronto, Ontario, Canada, 2001, Pages: 821 - 822</ref>
|