Stephanie Balzer, G. Bierman, Stephen Nelson, F. Tip
{"title":"Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages","authors":"Stephanie Balzer, G. Bierman, Stephen Nelson, F. Tip","doi":"10.1145/1562100","DOIUrl":"https://doi.org/10.1145/1562100","url":null,"abstract":"Welcome to the RAOOL'09 Workshop on Relationships and Associations in Object-Oriented Languages. The workshop is a direct successor of the RAOOL'08 workshop at OOPSLA'08 in Nashville and further relates more loosely to the Roles workshop at ECOOP'07 in Berlin. In this year's workshop an effort was made to gather the growing number of researchers in the object-oriented programming language community who are working on relationship-based and role-based systems to share their research and discuss the future of relationship-based and role-based constructs in programming languages. Input both from members of the programming language community and from members of related areas (e.g., databases, model-driven development) and domains (e.g., program analysis, orthogonal persistence, type systems) who are using relationships and roles is solicited. Some particular areas of interest are: \u0000 \u0000•relationship-based programming languages \u0000 \u0000•libraries/frameworks for relationship support \u0000 \u0000•first-class queries \u0000 \u0000•database integration and serialization \u0000 \u0000•relationship-based system design \u0000 \u0000•program understanding/visualization \u0000 \u0000•ownership and related techniques \u0000 \u0000•dynamic analysis of relationship usage \u0000 \u0000The proceedings contain 6 papers (4 long papers and 2 position papers) that were selected by the program committee out of 9 submissions. Each paper was reviewed by 4 program committee members, with further input from a small number of external reviewers. The reviewing process was managed using the EasyChair Conference System.","PeriodicalId":423992,"journal":{"name":"Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages","volume":"117 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124715136","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Implementing UML associations in Java: a slim code pattern for a complex modeling concept","authors":"Dominik Gessenharter","doi":"10.1145/1562100.1562104","DOIUrl":"https://doi.org/10.1145/1562100.1562104","url":null,"abstract":"Relationships are difficult to implement for two main reasons: Firstly, they provide a complex semantics for relating entities and secondly, relationships are not first class constructs in modern programming languages. The challenge of implementing relationships in code is to resolve the semantics of abstract model elements and turn them into references or pointers of the target language. Language extensions or libraries are often discussed as a means of facilitating the translation of relations into code. We present an approach that uses plain Java language concepts for the implementation of UML associations. We focus on symmetry of associations as well as on navigability, visibility and ownership of association ends and present a code pattern, that can easily be used for automatic code generation.","PeriodicalId":423992,"journal":{"name":"Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123656063","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Retrieving relationships from declarative files","authors":"Ciera Jaspan, Jonathan Aldrich","doi":"10.1145/1562100.1562101","DOIUrl":"https://doi.org/10.1145/1562100.1562101","url":null,"abstract":"Software frameworks frequently require developers to interact with them using both OO-based languages and declarative files. The frameworks also require that these declarative files are consistent with the OO code, but it is currently difficult to check this in a generic way. Relationships have shown to be useful for checking constraints within OO code, and as a declarative file is essentially a static list of relationships, they may also be useful for checking constraints within declarative files. However, retrieving relationships from these files has many potential problems. In this paper, we show why it would be useful to retrieve relationships from declarative files, and we explore the hurdles that a solution will have to overcome.","PeriodicalId":423992,"journal":{"name":"Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129879798","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Implementing relationships among classes of analysis pattern languages using aspects","authors":"R. T. Vaccare Braga, R. Marchesini","doi":"10.1145/1562100.1562103","DOIUrl":"https://doi.org/10.1145/1562100.1562103","url":null,"abstract":"Patterns within an analysis pattern language are related to each other in several ways: the application of a pattern can result in the application of another, a pattern can be applied only if another pattern was applied (or was not applied), etc. Also, several variants of a pattern may co-exist, and the application of a particular variant can lead to the inclusion or removal of associations between classes that form the pattern. In this paper, we show how we have used aspect-oriented programming to implement relationships between classes of an analysis pattern or between classes shared by more than one pattern. This allows the incremental development of a framework to support the pattern language, and also eases the instantiation of patterns and pattern variants.","PeriodicalId":423992,"journal":{"name":"Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114710767","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Nested and specialized associations","authors":"Tormod V. Håvaldsrud, B. Møller-Pedersen","doi":"10.1145/1562100.1562105","DOIUrl":"https://doi.org/10.1145/1562100.1562105","url":null,"abstract":"UML supports specialization of associations, but with sparse semantics. It is recognized that specialization is different from subsetting of association end sets, and UML indicates that it has a meaning similar to specialization for classes (or classifiers in general). Recent efforts on the introduction of associations into programming languages have claimed, with convincing examples, that specialization of associations can not be defined similar to specialization for classes. In this paper we demonstrate that these examples really call for the notion of nested associations; in addition it is demonstrated that other examples call for real specialization (as for classes) of associations. The two notions: nested associations and specialization of associations have been implemented in a prototype tool for an experimental modeling language, and together they open for rich modeling of associations similar to what we have for classes.","PeriodicalId":423992,"journal":{"name":"Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages","volume":"30 4","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114038443","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Roles in building web applications using Java","authors":"G. Boella, Roberto Grenna, Andrea Cerisara","doi":"10.1145/1562100.1562106","DOIUrl":"https://doi.org/10.1145/1562100.1562106","url":null,"abstract":"In this paper we apply the powerJava model of roles and relationships to a web application programming environment. First we show how the notion of role, as defined in powerJava, combines and automates several aspects which are important in web application programming, and which are now unrelated and dealt with separately and mostly by hand, and thus prone to errors. Second we show how from the powerJava code a web application can be automatically constructed using Struts and Spring.","PeriodicalId":423992,"journal":{"name":"Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages","volume":"163 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123062716","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Implementing relationships using Affinity","authors":"Stephen Nelson, David J. Pearce, J. Noble","doi":"10.1145/1562100.1562102","DOIUrl":"https://doi.org/10.1145/1562100.1562102","url":null,"abstract":"OO languages typically provide one form of object equality, known as reference equality, where two objects are equal only if they are the same object; two objects which are structurally identical are not considered equal. Thus, programmers who require a more refined notion of equality must define their own operator. Programmer-implemented equality operators tend to rely on informal notions of partial and temporal object immutability which are prone to error. This is a particular problem for objects used in collections which depend on equality. This paper discusses Affinity: an untyped, object-oriented language with a powerful equality operator based on EGAL [2] and support for object-keying and immutability. Affinity is designed to provide coherent and elegant support for object equality, reducing programmer burden and error potential.","PeriodicalId":423992,"journal":{"name":"Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114627782","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}