{"title":"Class-based Visibility from an MDA Perspective: From Access Graphs to Eiffel Code","authors":"Gilles Ardourel, M. Huchard","doi":"10.5381/jot.2004.3.4.a10","DOIUrl":"https://doi.org/10.5381/jot.2004.3.4.a10","url":null,"abstract":"exporting mechanism. These mechanisms are often static and class-based, sometimes method-based, giving classes the status of both the client and service provider. They help in hiding implementation as well as capturing part of the domain rules on access rights. We explore solutions for introducing design and implementation of class-based access control from a Model-Driven Architecture (MDA) perspective. As UML proposes only language-dependent solutions for access control representation, we consider extending UML with access graphs, a formalism previously introduced for comparing and reasoning about static access rights. In this paper, we describe the integration of AGATE, a suite of access graph based tools dedicated to access control, in the MDA process. We focus on two access control design tools operating at the Platform-Independent Model (PIM) level: the Rule Adapter makes access graphs compliant with specific design rules while the Client Discovery Module adds new relevant classes expressing client organization. Mapping to a Platform-Specific Model (PSM) is illustrated with the Eiel Access Graph Adapter and rules for generating code from this PSM are presented.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128328328","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}
Mads Torgersen, Erik Ernst, Christian Plesner Hansen, P. Ahé, Gilad Bracha, N. Gafter
{"title":"Adding wildcards to the Java programming language","authors":"Mads Torgersen, Erik Ernst, Christian Plesner Hansen, P. Ahé, Gilad Bracha, N. Gafter","doi":"10.1145/967900.968162","DOIUrl":"https://doi.org/10.1145/967900.968162","url":null,"abstract":"This paper describes wildcards, a new language construct designed to increase the flexibility of object-oriented type systems with parameterized classes. Based on the notion of use-site variance, wildcards provide a type safe abstraction over different instantiations of parameterized classes, by using '?' to denote unspecified type arguments. Thus they essentially unify the distinct families of classes often introduced by parametric polymorphism. Wildcards are implemented as part of the upcoming addition of generics to the Java™ programming language, and will thus be deployed world-wide as part of the reference implementation of the Java compiler javac available from Sun Microsystems, Inc. By providing a richer type system, wildcards allow for an improved type inference scheme for polymorphic method calls. Moreover, by means of a novel notion of wildcard capture, polymorphic methods can be used to give symbolic names to unspecified types, in a manner similar to the \"open\" construct known from existential types. Wildcards show up in numerous places in the Java Platform APIs of the upcoming release, and some of the examples in this paper are taken from these APIs.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121248102","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":"The Theory of Classification, Part 11: Adding Class Types to Object Implementations","authors":"A. Simons","doi":"10.5381/jot.2004.3.3.c1","DOIUrl":"https://doi.org/10.5381/jot.2004.3.3.c1","url":null,"abstract":"A model of strongly-typed object generators, in which the class-type information was attached to the object-information was developed. A class was defined as a family of objects that shared a similar implementation strategy, and a family of types shared a similar method interface. It provided a good foundation for developing further model interpretations of other object-oriented concepts such as class hierarchies, abstract classes, and interfaces. A new typed calculus was also used to present a model of strongly-typed inheritance, and a formal obligation to demonstrate that aspects of inheritance were type-sound were also fulfilled.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117135879","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":"Integrating BON and Object-Z","authors":"R. Paige, P. Brooke","doi":"10.5381/jot.2004.3.3.a3","DOIUrl":"https://doi.org/10.5381/jot.2004.3.3.a3","url":null,"abstract":"A significant limitation with object-oriented formal specification languages, such as Object-Z, is that they lack development and management processes, which can be used to guide the production of reliable, robust object-oriented systems. An integration of an object-oriented methodology, BON, and Object-Z is presented in order to add an industrially validated development process to Object-Z. An extensible CASE tool for BON is also described that supports the integration with an Object-Z code generation engine.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127116693","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":"The Theory of Classification, Part 9: Inheritance and Self-Reference","authors":"A. Simons","doi":"10.5381/jot.2003.2.6.c2","DOIUrl":"https://doi.org/10.5381/jot.2003.2.6.c2","url":null,"abstract":"The construction of two different models of implementation inheritence which can be used in the major object-oriented languages is discussed. The core idea of extending and modifying object templates can be modelled using records and the union with override operator. It is stated that in the first group, which includes Java and C++, self-reference is fixed as soon as the object template is defined. The results show a very slight difference between the two models, it depeds only on when fixpoints are taken.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122741678","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":"Understanding Symmetry in Object-Oriented Languages","authors":"Liping Zhao, J. Coplien","doi":"10.5381/jot.2003.2.5.a3","DOIUrl":"https://doi.org/10.5381/jot.2003.2.5.a3","url":null,"abstract":"Abstract The success of symmetry applications in many scientific disciplines has motivated us to explore symmetry in software. Our exploration is based on an informal notion that symmetry is the possibility of making a change together with some aspect that is immune to this change. In this view, symmetry has a duality of change and constancy whereby some aspect of an object can be changed while leaving other key aspects invariant. This view of symmetry is a fundamental concept underpinning many symmetry principles in the physical sciences. We have found that we can explain some object-oriented language constructs using this notion of symmetry. This article explores symmetry in object-oriented languages and also provides other examples of symmetry outside of object-oriented programming to show that symmetry considerations broaden beyond object orientation to other areas of software design. 1 INTRODUCTION The success of symmetry applications in many scientific disciplines has motivated us to explore symmetry in software [7][8][31]. Our exploration is based on an informal notion that symmetry is the possibility of making a change while some aspect remains immune to this change. In this view, symmetry has a duality of change and constancy whereby some aspect of an object can be changed while leaving other key aspects invariant. This view of symmetry has underpinned many principles in the physical sciences. For example, one of the most important conservation laws is that of mass-energy. This law derives from the symmetry principle that physical laws are invariant with respect to time; that is, the amount of energy present before any physical interaction must equal the amount available after the interaction. We have found that this notion of symmetry also underpins some object-oriented language constructs. This article presents our understanding of symmetry and its role in object-oriented languages. We believe a proper understanding of symmetry is important not only to software design, but also to software maintenance, testing and debugging, as recent","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"12088 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130977244","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}
Mike Barnett, R. Deline, Manuel Fähndrich, K. Leino, Wolfram Schulte
{"title":"Verification of Object-Oriented Programs with Invariants","authors":"Mike Barnett, R. Deline, Manuel Fähndrich, K. Leino, Wolfram Schulte","doi":"10.5381/jot.2004.3.6.a2","DOIUrl":"https://doi.org/10.5381/jot.2004.3.6.a2","url":null,"abstract":"An object invariant defines what it means for an object’s data to be in a consistent state. Object invariants are central to the design and correctness of objectoriented programs. This paper defines a programming methodology for using object invariants. The methodology, which enriches a program’s state space to express when each object invariant holds, deals with owned object components, ownership transfer, and subclassing, and is expressive enough to allow many interesting object-oriented programs to be specified and verified. Lending itself to sound modular verification, the methodology also provides a solution to the problem of determining what state a method is allowed to modify.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130560752","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":"The Theory of Classification, Part 8: Classification and Inheritance","authors":"A. Simons","doi":"10.5381/jot.2003.2.4.c4","DOIUrl":"https://doi.org/10.5381/jot.2003.2.4.c4","url":null,"abstract":"The theory of classification in object oriented languages are discussed. The differences between classes and types in object oriented languages are described by developing the alternative formal model of classification and inheritance. Extensibility and polymorphism are the two characteristics that hold classes apart from the traditional variable types. Classes are used to refer to a polymorphic family and types are used to refer one member of this family.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"112 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123368759","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":"The Theory of Classification, Part 7: A Class is a Type Family","authors":"A. Simons","doi":"10.5381/jot.2003.2.3.c2","DOIUrl":"https://doi.org/10.5381/jot.2003.2.3.c2","url":null,"abstract":"We shall discover circumstances in which a type system based on subtyping breaks down, providing less than useful information. Object-oriented languages like Smalltalk and Eiffel exhibit sophisticated, systematic kinds of behaviour which cannot adequately be described in terms of types and subtyping. By appealing to natural notions of classification in biology, we shall demonstrate the extent to which the subtyping model fails to capture the intuitive notion of a class. In this article, we shall define the notion of class formally, and prove that it is more than just a type. To understand this, we will need to extend our formal model to include type polymorphism. This requires the second-order λ-calculus and notions of universal [4, 5] and function-bounded quantification [6, 7].","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116829892","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":"The Theory of Classification, Part 6: The Subtyping Inquisition","authors":"A. Simons","doi":"10.5381/jot.2003.2.2.c2","DOIUrl":"https://doi.org/10.5381/jot.2003.2.2.c2","url":null,"abstract":"The theory of subtyping which judges object type compatibility from both the syntactic point of view and semantic point of view is discussed. The theory provides a tool for analyzing the type safety and behavioral correctness of programming languages. The main semantic behavioral rules of interest derived from the addition of constraints and the generalization of constraints strengthen an axiom. A compiler must be able to resolve the most specific type of an expression to select a unique overload.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"144 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133241720","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}