Lambda the Ultimate

inactiveTopic Subject-oriented programming @ IBM
started 1/16/2002; 4:26:33 AM - last post 1/17/2002; 9:53:34 PM
Ehud Lamm - Subject-oriented programming @ IBM  blueArrow
1/16/2002; 4:26:33 AM (reads: 1682, responses: 1)
Subject-oriented programming @ IBM
  • Create extensions to, and configurations of, software
  • Customize and integrate systems and reusable components
  • Facilitate multi-team system development
  • Permit decentralized development of classes
  • Simplify code for many design patterns

Subject-oriented programming is a program-composition technology that supports building object-oriented systems as compositions of subjects. A subject is a collection of classes or class fragments whose hierarchy models its domain in its own, subjective way. A subject may be a complete application in itself, or it may be an incomplete fragment that must be composed with other subjects to produce a complete application. Subject composition combines class hierarchies to produce new subjects that incorporate functionality from existing subjects. Subject-oriented programming thus supports building object-oriented systems as compositions of subjects, extending systems by composing them with new subjects, and integrating systems by composing them with one another (perhaps with "glue" or "adapter" subjects).

The site includes some examples, and information about tools (e.g., Hyper/J).

Posted to OOP by Ehud Lamm on 1/16/02; 4:27:37 AM

Albert Y. C. Lai - Re: Subject-oriented programming @ IBM  blueArrow
1/17/2002; 9:53:34 PM (reads: 575, responses: 0)
This work reminds me of Douglas Smith's Mechanizing the Development of Software. LtU has a past article on it:

Roughly speaking, a subject corresponds to a diagram (structure) of specifications, writing composition rules for combining classes C and D corresponds to adding base specification T and morphisms T->C and T->D, and composing corresponds to computing pushouts or colimits.

I haven't checked the papers on subject-oriented programming, so I do not know yet how much it is mathematically justified or whether Smith's work is cited.