Model interfaces for two-way obliviousness

A key problem in software development is producing systems that are maintainable even as the concerns at play evolve. Aspect-oriented programming (AOP) seeks to foster maintainability by isolating the specifications of cross-cutting concerns, allowing them to be modified in relative isolation from the rest of the system. Research in aspect-oriented modeling (AOM) aims to develop a model-layer analogue of AOP, allowing integration with accepted modeling practices. Aspects usually allow developers of the primary model to be oblivious to the aspects that modify the primary model; because of this, aspects can be closely coupled to potentially transient details of the primary model. When those details change, the aspects that depend on them may no longer have the desired effect. In this paper, we introduce model interfaces as a solution to the problem of obliviousness by extending a graph-transformational approach to AOM.