First-Class Relationships in an Object-Oriented Language

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]  Diane C. P. Smith,et al.  Database abstractions: aggregation and generalization , 1977, TODS.

[2]  Wolfram Schulte,et al.  The essence of data access in Cω: the power is in the dot! , 2005 .

[3]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[4]  DianeC . P. Smith,et al.  Database Abstractions: Aggregation and Generalization , 1989 .

[5]  Sophia Drossopoulou,et al.  δ : an imperative object based calculus with delegation ? , 2003 .

[6]  James Noble,et al.  Explicit Relationships in Object Oriented Development , 1995 .

[7]  Gavin M. Bierman,et al.  The Essence of Data Access in Comega , 2005, European Conference on Object-Oriented Programming.

[8]  Renzo Orsini,et al.  A Relationship Mechanism for a Strongly Typed Object-Oriented Database Programming Language , 1991, VLDB.

[9]  James Noble Basic Relationship Patterns , 1997 .

[10]  Sophia Drossopoulou An Abstract Model of Java Dynamic Linking and Loading , 2000, Types in Compilation.

[11]  Perdita Stevens,et al.  Using UML - software engineering with objects and components, Second Edition , 2006, Addison Wesley object technology series.

[12]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.

[13]  R. G. G. Cattell,et al.  Recent books , 2000, IEEE Spectrum.

[14]  James E. Rumbaugh Relations as semantic constructs in an object-oriented language , 1987, OOPSLA 1987.

[15]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[16]  Matthias Felleisen,et al.  Classes and mixins , 1998, POPL '98.

[17]  Sophia Drossopoulou,et al.  Java Type Soundness Revisited , 2000 .

[18]  James E. Rumbaugh,et al.  Relations as semantic constructs in an object-oriented language , 1987, OOPSLA '87.