Abstract
Model Driven Engineering (MDE) aims to expedite the software development process by providing support for transforming models to running systems. Many modeling tools provide forward engineering features that automatically translate a model into a skeletal program that developers must complete. Inconsistencies between a design model and its implementation can result as a consequence of manually-added code. Manually checking that an implementation conforms to the model is a daunting task. Thus, there is a need for MDE tools that developers can use to check whether an implementation conforms to a model, especially when generated code is manually modified. This paper presents an approach for testing that an implementation satisfies the constraints specified in its design model. We also describe a prototypical tool that supports the approach, and we describe how its application to two Eclipse UML2 projects uncovered errors.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Systems, R.: Software Testing and Validation with Reactis (2013), http://www.reactive-systems.com/ (accessed June 7, 2013)
Omg: OMG Unified Modeling Language (OMG UML), Superstructure Specification (Version 2.4.1). Tech. rep., Object Management Group (2011), http://www.omg.org/spec/UML/2.4.1/ (accessed June 7, 2013)
Omg: OMG Object Constraint Language (OCL) Version 2.3.1. Tech. rep (2012), http://www.omg.org/spec/OCL/2.3.1/ (accessed June 7, 2013)
IBM: IBM Rational Software and Systems Delivery (2013), http://www-01.ibm.com/software/rational/ (accessed June 7, 2013)
Warmer, J., Kleppe, A.: The Object Constraint Language: Getting Your Models Ready for MDA, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)
Kannan, Y., Sen, K.: Universal Symbolic Execution and its Application to Likely Data Structure Invariant Generation. In: Proceedings of the 2008 International Symposium on Software Testing and Analysis, New York, NY, USA, pp. 283–294 (2008)
Ammann, P., Offutt, J.: Introduction to Software Testing, 1st edn. Cambridge University Press, New York (2008)
Foundation, T.: Eclipse Modeling - MDT - Home (2013), http://www.eclipse.org/modeling/mdt/ (accessed June 7, 2013)
Foundation, T.: Eclipse Modeling - MDT - OCL (2013), http://www.eclipse.org/modeling/mdt/downloads/?project=ocl (accessed June 7, 2013)
Consortium, O.: ASM Home Page (2013), http://asm.ow2.org/ (accessed June 7, 2013)
Le Berre, D., Parrain, A.: The Sat4j Library, Release 2.2. Journal on Satisfiability, Boolean Modeling and Computation 7, 59–64 (2010)
Barbier, F., Henderson-Sellers, B., Le Parc-Lacayrelle, A., Bruel, J.-M.: Formalization of the Whole-Part Relationship in the Unified Modeling Language. IEEE Trans. Softw. Eng. 29(5), 459–470 (2003)
Boyapati, C., Liskov, B., Shrira, L.: Ownership Types for Object Encapsulation. In: Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New York, NY, USA, pp. 213–223 (2003)
Guhneuc, Y.-G., Albin-Amiot, H.: Recovering Binary Class Relationships: Putting Icing on the UML Cake. In: Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, New York, NY, USA, pp. 301–314 (2004)
Darga, P., Boyapati, C.: Efficient Software Model Checking of Data Structure Properties. In: Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, New York, NY, USA, pp. 363–382 (2006)
Boyapati, C., Khurshid, S., Marinov, D.: Korat: Automated Testing Based on Java Predicates. In: Proceedings of the 2002 ACM SIGSOFT International Symposium on Software Testing and Analysis, New York, NY, USA, pp. 123–133 (2002)
Abdurazik, A., Offutt, J.: Using UML Collaboration Diagrams for Static Checking and Test Generation. In: Proceedings of the 3rd International Conference on The Unified Modeling Language: Advancing the Standard, Berlin, Heidelberg, pp. 383–395 (2000)
Roychoudhury, A., Goel, A., Sengupta, B.: Symbolic Message Sequence Charts. ACM Trans. Softw. Eng. Methodol. 12, 12:1–12:44 (2012)
Akehurst, D., Howells, G., McDonald-Maier, K.: Implementing associations: UML 2.0 to Java 5. 0 to Java 5. Software & Systems Modeling 6(1), 3–35 (2007)
Milanova, A.: Precise Identification of Composition Relationships for UML Class Diagrams. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, New York, NY, USA, pp. 76–85 (2005)
KeY Project: Integrated Deductive Software Design (2013), http://www.key-project.org/ (accessed June 7, 2013)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chavez, H.M., Shen, W., France, R.B., Mechling, B.A. (2013). An Approach to Testing Java Implementation against Its UML Class Model. In: Moreira, A., Schätz, B., Gray, J., Vallecillo, A., Clarke, P. (eds) Model-Driven Engineering Languages and Systems. MODELS 2013. Lecture Notes in Computer Science, vol 8107. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41533-3_14
Download citation
DOI: https://doi.org/10.1007/978-3-642-41533-3_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-41532-6
Online ISBN: 978-3-642-41533-3
eBook Packages: Computer ScienceComputer Science (R0)