Eiffel: the language
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
An axiomatic basis for computer programming
Communications of the ACM - Special 25th Anniversary Issue
A technique for software module specification with examples
Communications of the ACM
Computer
Locating Features in Source Code
IEEE Transactions on Software Engineering
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
AspectS - Aspect-Oriented Programming with Squeak
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
APSEC '97 Proceedings of the Fourth Asia-Pacific Software Engineering and International Computer Science Conference
iContract - The Java(tm) Design by Contract(tm) Tool
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Simple Support for Design by Contract in C++
TOOLS '01 Proceedings of the 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS39)
jContractor: A Reflective Java Library to Support Design by Contract
jContractor: A Reflective Java Library to Support Design by Contract
Adding Contracts to Java with Handshake
Adding Contracts to Java with Handshake
Why Programs Fail: A Guide to Systematic Debugging
Why Programs Fail: A Guide to Systematic Debugging
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
An Experience With Design by Contract
APSEC '06 Proceedings of the XIII Asia Pacific Software Engineering Conference
Context-oriented programming: beyond layers
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Improving the development of context-dependent Java applications with ContextJ
International Workshop on Context-Oriented Programming
A comparison of context-oriented programming languages
International Workshop on Context-Oriented Programming
The Python Language Reference Manual
The Python Language Reference Manual
Transactions on Aspect-Oriented Software Development I
Event-specific software composition in context-oriented programming
SC'10 Proceedings of the 9th international conference on Software composition
ContextLua: dynamic behavioral variations in computer games
Proceedings of the 2nd International Workshop on Context-Oriented Programming
An open implementation for context-oriented layer composition in ContextJS
Science of Computer Programming
Declarative layer composition in framework-based environments
Proceedings of the International Workshop on Context-Oriented Programming
Diagnosys: automatic generation of a debugging interface to the Linux kernel
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Family-based deductive verification of software product lines
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Hi-index | 0.00 |
Design by Contract (DBC) is a programming technique to separate contract enforcement from application code. DBC provides information about the applicability of methods and helps to narrow down the search space in case of a software failure. However, most DBC implementations suffer from inflexibility: Contract enforcement can only be activated or deactivated at compile-time or start-up, contracts are checked globally and cannot be restricted in their scope such as to the current thread of execution, and contracts cannot be grouped according to the concerns they relate to. In this paper, we present dynamic contract layers (DCL) for fine-grained and flexible contract management. Based on ideas from context-oriented programming, we extend DBC by a grouping mechanism for contracts, thread-local activation and deactivation of such groups, and selective contract enforcement at run-time. PyDCL, our proof-of-concept implementation of DCL, is built onto ContextPy, our COP extension for the Python programming language. We evaluate our approach by applying PyDCL contracts to the Moin-Moin Wiki framework.