skip to main content
10.1145/1993956.1993957acmotherconferencesArticle/Chapter ViewAbstractPublication PagesbmConference Proceedingsconference-collections
research-article

Enriching Java Enterprise interfaces with formal sequential contracts

Authors Info & Claims
Published:06 June 2011Publication History

ABSTRACT

Many software systems are stateful or have stateful components, i.e. they manage and process data depending on certain steps performed before. For this reason, sequential contracts are of interest that describe component interfaces with respect to sequences of invocations leaving the component in a valid state. While sophisticated models for this purpose exist, component frameworks don't support sequential contracts, so that a validation of the state is performed algorithmically and mixed-up with application logic in method contents. In this contribution we present (1) meta data for object-oriented program code that allow to annotate component interfaces with sequential contracts and (2) a pattern and tools integrating sequential contracts in Java Enterprise components. The contracts can then be modeled as part of the program code at development time and be interpreted at run time to prevent invalid method invocations and provide tracing data in case of errors.

References

  1. Plasil, F., Visnovsky, S.: Behavior Protocols for Software Components. IEEE Transactions on Software Engineering (2002) 1056--1076 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Sun Microsystems, Inc.: JSR 316: Java#8482;Platform, Enterprise Edition 6 (Java EE 6) Specification (December 2009) http://jcp.org/en/jsr/detail?id=316.Google ScholarGoogle Scholar
  3. Sun Microsystems, Inc.: Introduction to the Java#8482; EE 6 Platform. White Paper (2009)Google ScholarGoogle Scholar
  4. de Alfaro, L., Henzinger, T. A.: Interface Automata. In: Proceedings of the Ninth Annual Symposium on Foundations of Software Engineering (FSE), ACM. (2001) 109--120 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Sun Microsystems, Inc.: JSR 175: A Metadata Facility for the Java#8482;Programming Language (2004) http://jcp.org/en/jsr/detail?id=175.Google ScholarGoogle Scholar
  6. Cheon, Y., Perumandla, A.: Specifying and Checking Method Call Sequences of Java Programs. Software Quality Journal 15(1) (March 2007) 7--25 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Leavens, G., Cheon, Y.: Design by Contract with JML. http://www.jmlspecs.org/jmldbc.pdf (2006)Google ScholarGoogle Scholar
  8. Heinlein, C.: Advanced Thread Synchronization in Java Using Interaction Expressions. Objects, Components, Architectures, Services, and Applications for a Networked World 2591/2009 (2009) 345--365 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Pavel, S., Noye, J., Poizat, P., Royer, J. C.: Java Implementation of a Component Model with Explicit Symbolic Protocols. In: In Proceedings of the 4th International Workshop on Software Composition (SC'05), volume 3628 of LNCS, Springer-Verlag (2005) 115--124 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Farías, A., Guéhéneuc, Y., Südholt, M.: Integrating Behavioral Protocols in Enterprise Java Beans. In: 11th OOPSLA Workshop on Behavioral Semantics: Serving the Customer. OOPSLA '02, New York, NY, USA, ACM (2002) 76--77 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Reussner, R., Becker, S., Happe, J., Koziolek, H., Krogmann, K., Kuperberg, M.: The Palladio Component Model. Technical report, Chair for Software Design & Quality (SDQ), University of Karlsruhe (TH), Germany (May 2007)Google ScholarGoogle Scholar
  12. Beugnard, A., Jézéquel, J. M., Plouzeau, N., Watkins, D.: Making Components Contract Aware. Computer 32(7) (1999) 38--45 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Object Management Group: Common Object Request Broker Architecture (CORBA) Specification, Version 3.1, Part 1: CORBA Interfaces. Technical report, Object Management Group (January 2008) http://www.omg.org/spec/CORBA/3.1/Interfaces/PDF/.Google ScholarGoogle Scholar
  14. Demers, F. N., Malenfant, J.: Reflection in logic, functional and object-oriented programming: A Short Comparative Study. In: In IJCAI '95 Workshop on Reflection and Metalevel Architectures and their Applications in AI. (1995) 29--38Google ScholarGoogle Scholar
  15. Lynch, N. A., Tuttle, M. R.: Hierarchical Correctness Proofs for Distributed Algorithms. In: Proceedings of the sixth annual ACM Symposium on Principles of distributed computing. PODC '87, New York, NY, USA, ACM (1987) 137--151 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Larsen, K. G., Pettersson, P., Yi, W.: Uppaal in a Nutshell. Int. Journal on Software Tools for Technology Transfer 1(1--2) (Oct 1997) 134--152Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Wasylkowski, A., Zeller, A., Lindig, C.: Detecting Object Usage Anomalies. In: Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. ESEC-FSE '07, New York, NY, USA, ACM (2007) 35--44 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. The Eclipse Foundation: Eclipse website http://www.eclipse.org/.Google ScholarGoogle Scholar
  19. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J. M., Irwing, J.: Aspect-Oriented Programming. ECOOP '97 - Object-Oriented Programming: 11th European Conference LNCS 1241 (1997) 220--242Google ScholarGoogle Scholar
  20. Sun Microsystems: Dynamic Proxy Classes, Java SE Documentation (January 2010) http://java.sun.com/javase/6/docs/technotes/guides/reflection/proxy.html.Google ScholarGoogle Scholar

Index Terms

  1. Enriching Java Enterprise interfaces with formal sequential contracts

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Other conferences
                  BM-FA '11: Proceedings of the Third Workshop on Behavioural Modelling
                  June 2011
                  71 pages
                  ISBN:9781450306171
                  DOI:10.1145/1993956

                  Copyright © 2011 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 6 June 2011

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • research-article

                  Acceptance Rates

                  Overall Acceptance Rate8of9submissions,89%

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader