Abstract
Associations between objects are one of the most fundamental concepts in object-oriented design. The choices of how to implement associations determine how operations on the associated instances are performed: Sequentially or in parallel, with or without cached results, and with a transient or persistent effect. In this work, we propose a scheme that allows for generated code to support different methods of operating on associated instances, without requiring changes to the client code. These methods include using indices, traversing the association in parallel, or using a database. Instead of the sequential iterator interface, we propose to use an interface that include operations over multiple instances: Foreach, Filter, Map and Fold. This interface allows for realizing designs that involve sending messages to multiple associated instances, such as UML sequence and communication diagrams. The realization does not depend on the implementation details of the associations.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Rumbaugh, J., Jacobson, I., Booch, G.: Unified Modeling Language Reference Manual, 2nd edn. Pearson Higher Education, London (2004)
Object Management Group: OCL 2.0 Specification. Formal specification (2005)
Warmer, J., Kleppe, A.: The Object Constraint Language: Getting Your Models Ready for MDA. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)
Martin, J., Odell, J.J.: Object-oriented analysis and design. Prentice-Hall, Inc., Upper Saddle River (1992)
Larman, C.: Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development. Prentice Hall PTR, Upper Saddle River (2004)
Fowler, M.: UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)
Gessenharter, D.: Mapping the UML2 semantics of associations to a Java code generation model. In: Czarnecki, K., Ober, I., Bruel, J.M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 813–827. Springer, Heidelberg (2008)
Akehurst, D., Howells, G., McDonald-Maier, K.: Implementing associations: UML 2.0 to Java 5. Software and Systems Modeling 6(1), 3–35 (2007)
Harrison, W., Barton, C., Raghavachari, M.: Mapping UML designs to Java. ACM SIGPLAN Notices 35(10), 178–187 (2000)
Pigoski, T.M.: Practical Software Maintenance: Best Practices for Managing Your Software Investment. John Wiley & Sons, Inc., New York (1996)
Martin, J., McClure, C.: Software Maintenance: The Problems and Its Solutions. Prentice Hall Professional Technical Reference (1983)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)
Allen, J.: Anatomy of LISP. McGraw-Hill Book Company, New York (1978)
Iverson, K.E.: A Programming Language. John Wiley & Sons, Inc., Chichester (1962)
Blaha, M., Premerlani, W.: Object-oriented modeling and design for database applications. Prentice-Hall, Inc., Upper Saddle River (1997)
Giacaman, N., Sinnen, O.: Parallel iterator for parallelising object-oriented applications. Technical Report 669, University of Auckland (November 2008)
Rogers, P., Janssen, R., Otto, A., Pleus, R., Salla, A., Sokal, V.: Storage management software and hardware. ABCs of z/OS System Programming, vol. 3. IBM Redbooks (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Goldberg, M., Wiener, G. (2011). Generating Code for Associations Supporting Operations on Multiple Instances. In: Maciaszek, L.A., Loucopoulos, P. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2010. Communications in Computer and Information Science, vol 230. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-23391-3_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-23391-3_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-23390-6
Online ISBN: 978-3-642-23391-3
eBook Packages: Computer ScienceComputer Science (R0)