Using subject-oriented programming to overcome common problems in object-oriented software development/evolution - Ossher, Harold; Tarr, Peri (Proceedings / International Conference on Software Engineering, 1999)
Subject-oriented programming (SOP) is a practical approach to object-oriented (OO) programming-in-the-large. It addresses a number of well-known limitations of OO development, without forcing developers to adopt new languages or to abandon the OO paradigm. These limitations arise especially when using OO technology to develop large systems, suites of interoperating or integrated applications, or systems that evolve in unexpected ways. These limitations include weaknesses in: non-invasive system extension and evolution; large-scale reuse and integration; system decomposition; and multi-team/decentralized development.