Subject-oriented programming
<programming> Program composition that 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 flexibility of subject composition introduces novel opportunities for developing and modularising object-oriented programs.
Subject-oriented programming-in-the-large involves dividing a system into subjects and writing rules to compose them correctly.
It complements
object-oriented programming, solving a number of problems that arise when OOP is used to develop large systems or suites of interoperating or integrated applications.
IBM subject-oriented programming (http://www.research.ibm.com/sop/).