Object lifecycles: modeling the world in states
Object lifecycles: modeling the world in states
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Communications of the ACM
Design by contract, by example
Design by contract, by example
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Computer
The 4+1 View Model of Architecture
IEEE Software
State-based incremental testing of aspect-oriented programs
Proceedings of the 5th international conference on Aspect-oriented software development
Learning UML 2.0
Hi-index | 0.00 |
Aspect technology has been used to describe concerns that had been thought to be unmodularizable. Some of those concerns have to do with workflows in an application's domain and sequencing of operation invocations within the application. Another principle of software engineering that has generated some interest and controversy within the aspect community is design by contract. Over the years some have suggested that a component's contracts be expressed through one or several aspects attached to it. This paper will describe a use of aspects that is a hybrid of the above ideas: the enforcement of operation invocation ordering through the component's contract and expressed as an aspect. The aspect is in turn modeled with a state machine whose description can be used to enhance the clarity of a component's description at the analysis and design phases, and whose implementation can be used to monitor invocations on the component for proper sequencing.