Idén om en klassisk distribuerad superposition används för att utforma en ny objektorienterad version som innehåller aspekter. En superimposition är en samling av generiska parameteriserade aspekter och nya klasser (ofta entons betongklasser). Superimpositioner kan kombineras, antingen sekventiellt eller i en sammanslagning, för att skapa nya. Superimpositioner inkluderar också specifikationer om förmodade egenskaper hos grundläggande program som superimposition kan tillämpas och önskade egenskaper läggs till av superimposition. Dessa specifikationer används för att fastställa beviskrav för att superpositionerna är korrekta och för att kontrollera om det är möjligt att kombinera superpositionerna. SuperJ, en notation och en implementerad preprocessor över AspectJ, beskrivs. SuperJ kan användas för att applicera en superposition på ett grundläggande system, generera konkreta aspekter från generiska aspekter och sedan väva dem till basklasser. Superimpositionerna deklareras separat, specificeras och verifieras. Bland de exempel som används för att visa tillvägagångssättet är en algoritm för att upptäcka avbrott, en version av problemet med Dining Philosophers och en övervakning av superimposition som samlar statistik över grundläggande objekt.
Sihman m.fl. REF modulerar beviskrav för superpositioner och utför kontroller innan en superimposition tillämpas (dvs. när en aspekt är vävd).
Superimpositions and aspect-oriented programming
{'venue': 'The Computer Journal', 'journal': None, 'mag_field_of_study': ['Computer Science']}