Extending Design by Contract for Aspect-Oriented Programming
David H. Lorenz, Therapon Skotiniotis
Abstract
Design by Contract (DbC) and runtime enforcement of program assertions enables the construction of more robust software. It also enables the assignment of blame in error reporting. Unfortunately, there is no support for runtime contract enforcement and blame assignment for Aspect-Oriented Programming (AOP). Extending DbC to also cover aspects brings forward a plethora of issues related to the correct order of assertion validation. We show that there is no generally correct execution sequence of object assertions and aspect assertions. A further classification of aspects as agnostic, obedient, or rebellious defines the order of assertion validation that needs to be followed. We describe the application of this classification in a prototyped DbC tool for AOP named Cona, where aspects are used for implementing contracts, and contracts are used for enforcing assertions on aspects.
Create a lesson
Related papers
Are We Just Applying LLMs? What SE Research Studies, Underexplores, and Could Do Next in the LLM Era
Zeinadsadat Saghi, Sadra Sabouri, Souti Chattopadhyay
Testing Processor Contracts in Speculative Decoding Engines
Tianyu Ding, Yaocheng Tong, Muzhi Yang et al.
Supporting Viewpoint Coordination for Compliance by Design with an Artifact Model for Regulatory Requirements Engineering
Oleksandr Kosenkov, Davide Fucci, Michael Unterkalmsteiner et al.
DistDebug-Bench: Can LLM Agents Diagnose Bugs in Distributed Systems?
Yuxuan Jiang, Chenglin Liu, John Rose et al.
uTECH Turbo-MOVES: The Intersection of Software Architectural Innovation and Sustainable Mobility Analysis
Cafer Avcı, Alireza Yazdiani, Roopak Srinivasan et al.
Specification-Driven Governance for Fairness-by-Design in Agentic Software Engineering: How Far Can We Go?
Alfonso Cannavale, Alessandra Parziale, Valeria Pontillo et al.