A Thought on Specification Reflection

In programming languages, reflection is the ability to discover and manipulate, at runtime, information about program entities, such as objects. We present our thoughts on extending the concept of reflection to behavioral interface specifications. We explain the benefits of such specification reflection, and discuss implementation approaches, support tools, and research problems and issues in this area.

[1]  Denis Caromel,et al.  A Simple Security-Aware MOP for Java , 2001, Reflection.

[2]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[3]  Stephen H. Edwards,et al.  Model variables: cleanly supporting abstraction in design by contract , 2005, Softw. Pract. Exp..

[4]  Philippe Collet,et al.  Assertions are objects too ! , 1996 .

[5]  Peter H. Golde,et al.  C# Language Specification , 2003 .

[6]  David Holmes,et al.  The Java Programming Language, Third Edition , 2000 .

[7]  Bertrand Meyer,et al.  Reusability: The Case for Object-Oriented Design , 1987, IEEE Software.

[8]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[9]  Rémi Douence,et al.  A Generic Reification Technique for Object-Oriented Reflective Languages , 2001, High. Order Symb. Comput..

[10]  Albert L. Baker,et al.  JML: A Notation for Detailed Design , 1999, Behavioral Specifications of Businesses and Systems.

[11]  Richard P. Gabriel,et al.  CLOS in context: the shape of the design space , 1993 .

[12]  Gary T. Leavens,et al.  Forcing behavioral subtyping through specification inheritance , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[13]  Yoonsik Cheon,et al.  A Runtime Assertion Checker for the Java Modeling Language (JML) , 2003, ICSE 2003.

[14]  Gary T. Leavens,et al.  A Simple and Practical Approach to Unit Testing: The JML and JUnit Way , 2002, ECOOP.

[15]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[16]  Jacques Malenfant,et al.  Reflection in logic, functional and object-oriented programming: a Short Comparative Study , 1995 .

[17]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, International Journal on Software Tools for Technology Transfer.

[18]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[19]  David S. Rosenblum A Practical Approach to Programming With Assertions , 1995, IEEE Trans. Software Eng..