Results 1 - 10
of
17
First-class relationships in an object-oriented language
- In ECOOP
, 2005
"... In this paper we investigate the addition of first-class relationships to a prototypical object-oriented programming language (a “middleweight ” fragment of Java). We provide language-level constructs to declare relationships between classes and to manipulate relationship instances. We allow relatio ..."
Abstract
-
Cited by 36 (0 self)
- Add to MetaCart
In this paper we investigate the addition of first-class relationships to a prototypical object-oriented programming language (a “middleweight ” fragment of Java). We provide language-level constructs to declare relationships between classes and to manipulate relationship instances. We allow relationships to have attributes and provide a novel notion of relationship inheritance. We formalize our language giving both the type system and operational semantics and prove certain key safety properties. 1.
Efficient object querying for Java
- In Proceedings of the European Conference on Object-Oriented Programming (ECOOP
, 2006
"... Abstract. Modern programming languages have little or no support for querying objects and collections. Programmers are forced to hand code such queries using nested loops, which is both cumbersome and inefficient. We demonstrate that first-class queries over objects and collections improve program r ..."
Abstract
-
Cited by 17 (2 self)
- Add to MetaCart
Abstract. Modern programming languages have little or no support for querying objects and collections. Programmers are forced to hand code such queries using nested loops, which is both cumbersome and inefficient. We demonstrate that first-class queries over objects and collections improve program readability, provide good performance and are applicable to a large number of common programming problems. We have developed a prototype extension to Java which tracks all objects in a program using AspectJ and allows first-class queries over them in the program. Our experimental findings indicate that such queries can be significantly faster than common programming idioms and within reach of hand optimised queries. 1
Classifying Relationships between Object-Oriented
- Design Patterns, Australian Software Engineering Conference (ASWEC
, 1998
"... Since the publication of the Design Patterns book, a large number of object-oriented design patterns have been identified and codified. As part of the pattern form, objectoriented design patterns must indicate their relationships with other patterns, but these relationships are typically described v ..."
Abstract
-
Cited by 17 (1 self)
- Add to MetaCart
Since the publication of the Design Patterns book, a large number of object-oriented design patterns have been identified and codified. As part of the pattern form, objectoriented design patterns must indicate their relationships with other patterns, but these relationships are typically described very briefly, and different collections of patterns describe different relationships in different ways. In this paper we describe and classify the common relationships between object oriented design patterns. Practitioners can use these relationships to help them identity those patterns which may be applicable to a particular problem, and pattern writers can use these relationships to help them integrate new patterns into the body of the patterns literature. 1.
Mapping UML Associations into Java Code
- JOURNAL OF OBJECT TECHNOLOGY
, 2003
"... Object-oriented programming languages do not contain syntax or semantics to express associations directly. Therefore, UML associations have to be implemented by an adequate combination of classes, attributes and methods. This paper presents some principles for the implementation of UML binary associ ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
Object-oriented programming languages do not contain syntax or semantics to express associations directly. Therefore, UML associations have to be implemented by an adequate combination of classes, attributes and methods. This paper presents some principles for the implementation of UML binary associations in Java, paying special attention to multiplicity, navigability and visibility. Our analysis has encountered some paradoxes in the specification of visibility for bidirectional associations. These principles have been used to write a series of code patterns that we use in combination with a tool that generates code for associations, which are read from a model stored in XMI format.
Geographic Automata Systems
- International Journal of Geographical Information Science
, 2005
"... A novel approach to automata-based modeling for spatial systems is described: geographic automata and Geographic Automata Systems. We detail a framework that takes advantage of the formalism of automata theory and GI Science to unite cellular automata and multi-agent systems techniques, and provides ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
A novel approach to automata-based modeling for spatial systems is described: geographic automata and Geographic Automata Systems. We detail a framework that takes advantage of the formalism of automata theory and GI Science to unite cellular automata and multi-agent systems techniques, and provides a spatial approach to bottomup modeling of complex geographic systems that are comprised of infrastructure and human objects. The suitability of the framework is also discussed with reference to existing cellular automata and multi-agent systems models used in urban studies. Practical implementation of the framework is illustrated with reference to an object-based urban simulation environment and implementation of a popular socio-spatial segregation model.
Relationships meet their roles in object oriented programming
- In Procs. of FSEN’07
, 2007
"... Abstract. In this paper we study how roles can be added to patterns modelling relationships in Object Oriented programming. Relationships can be introduced in programming languages either by reducing them to attributes of the objects which participate in the relationship, or by modelling the relatio ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
Abstract. In this paper we study how roles can be added to patterns modelling relationships in Object Oriented programming. Relationships can be introduced in programming languages either by reducing them to attributes of the objects which participate in the relationship, or by modelling the relationship itself as a class whose instances have the participants of the relationships among their attributes. However, even if roles have been recognized as an essential component of relationships, also in modelling languages like UML, they have not been introduced in Object Oriented programming when it is necessary to model relationships. Introducing roles allows to add attributes and behaviors to the participants in the relationship, rather than to the relationship itself, and to distinguish the natural types of the participants in the relationships from the roles the participants acquire in the relationships. We show how the role model of the language powerJava can be used to endow the relationship as attribute pattern with roles. 1
Geographic automata systems: A new paradigm for integrating gis and geographic simulation
- In Proceedings of GeoComputation conference
, 2003
"... Geographic simulation is concerned with automata-based methodologies for simulating discrete, dynamic, and action-oriented spatial systems, combining cellular automata and multi-agent systems in a spatial context. In this paper, we propose a paradigm for integrating GIS and geosimulation into what w ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Geographic simulation is concerned with automata-based methodologies for simulating discrete, dynamic, and action-oriented spatial systems, combining cellular automata and multi-agent systems in a spatial context. In this paper, we propose a paradigm for integrating GIS and geosimulation into what we term Geographic Automata Systems (GAS), the latter fusing the two into full-blown, symbiotic systems. 1.
Mappings make data processing go ’round — An inter-paradigmatic mapping tutorial
- In Generative and Transformation Techniques in Software Engineering, volume 4143 of LNCS
, 2006
"... Abstract. Whatever programming paradigm for data processing we choose, data has the tendency to live on the other side or to eventually end up there. The major paradigms for data processing are Cobol, object, relational and XML; each paradigm offers many facets and many versions; each paradigm provi ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Abstract. Whatever programming paradigm for data processing we choose, data has the tendency to live on the other side or to eventually end up there. The major paradigms for data processing are Cobol, object, relational and XML; each paradigm offers many facets and many versions; each paradigm provides specific forms of data models (object models, relational schemas, XML schemas, etc.). Each data-processing application depends on a horde of interrelated data models and artifacts that are derived from data models (such as data-access layers). Such conglomerations of data models are challenging due to paradigmatic impedance mismatches, performance requirements, loose-coupling requirements, and others. This ubiquitous problem calls for a good understanding of techniques for mappings between data models, actual data, and operations on data. This tutorial lists and discusses mapping scenarios, mapping techniques, impedance mismatches and research challenges regarding mappings.
Relationship aspect patterns
- In: 11th European Conference on Pattern Languages of Programs (EuroPLoP’06
, 2006
"... Relationships between objects are almost as important to designs as the objects themselves. Most programming languages do not support relationships well, so programmers must implement relationships in terms of more primitive constructs. This paper presents a selection of proto-patterns which describ ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Relationships between objects are almost as important to designs as the objects themselves. Most programming languages do not support relationships well, so programmers must implement relationships in terms of more primitive constructs. This paper presents a selection of proto-patterns which describe how aspects can be used to model relationships within programs. By using these patterns, programs and designs can be made smaller, more flexible, and easier to understand and maintain.

