In suBject-oriented programming, a suBject is a collection of classes or class fragments whose {class 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. (1999-08-31)