Obvious or not?: regulating architectural decisions using aspect-oriented programming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Inside C#
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Enforcing System-Wide Properties
ASWEC '04 Proceedings of the 2004 Australian Software Engineering Conference
A Comparison of Bug Finding Tools for Java
ISSRE '04 Proceedings of the 15th International Symposium on Software Reliability Engineering
XIRC: A Kernel for Cross-Artifact Information Engineering in Software Development Environments
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
ACM SIGPLAN Notices
A framework for implementing pluggable type systems
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
AVal: an extensible attribute-oriented programming validator for Java: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - Source Code Analysis and Manipulation (SCAM 2006)
Defining and continuous checking of structural program dependencies
Proceedings of the 30th international conference on Software engineering
Annotation Framework Validation Using Domain Models
ECMDA-FA '08 Proceedings of the 4th European conference on Model Driven Architecture: Foundations and Applications
JavaCOP: Declarative pluggable types for java
ACM Transactions on Programming Languages and Systems (TOPLAS)
BAT2XML: XML-based Java Bytecode Representation
Electronic Notes in Theoretical Computer Science (ENTCS)
Reusable enterprise metadata with pattern-based structural expressions
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
AnnaBot: a static verifier for java annotation usage
Advances in Software Engineering - Special issue on software test automation
A qualitative human-centric evaluation of flexibility in middleware implementations
Empirical Software Engineering
Automatic incrementalization of prolog based static analyses
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Metadata invariants: checking and inferring metadata coding conventions
Proceedings of the 34th International Conference on Software Engineering
Hi-index | 0.00 |
The specification of meta-information, by using attributes in .NET or annotations in Java, along with the source code is gaining widespread use. Meta-information is used for different purposes such as code generation or configuration of the environment in which a class is deployed. However, in most cases using an annotation also implies that constraints, beyond those defined by the language's semantics, have to be followed. E.g., a class must define a no-arguments constructor or the parameters of a method must have specific types. Currently, these constraints are not checked at all or only to a very limited extend. Hence, a violation can remain undetected and result in deployment-time or even subtle run-time errors. In this paper, we present a user-extensible framework that enables the definition of constraints to check the properties of annotated elements. Further, we demonstrate the application of the framework to check the constraints defined in the EJB 3.0 specification, and an evaluation of the approach based on checking the xPetstore-EJB3.0 project from within Eclipse to test the performance.