| Bergstein, P. L., Object-preserving class transformations, in: Proc. Conf. Object-oriented programming systems, languages, and applications (1991), pp. 299--313. |
....and create classes to store them ( factorize common properties ) We propose an incremental algorithm which performs maximal factorization of properties defined on the classes, and offers a solution to the problem of property overloading. Different methods are proposed in existing systems [Cas92, LBSL91, LBSL90, Ber91] to solve that factorization problem. We extend them, firstly by approaching the question of overloading, secondly by producing a more simple polynomial algorithm, thirdly by producing results that can be theoretically characterized. Our frame of reference to describe the algorithm is Galois ....
P. Bergstein. Object Preserving Class Transformations. Proceedings of OOPSLA'91, 1991.
....design rules to support reusable classes. The authors argue that restructuring an object oriented program in line with these guidelines will improve its reusability and maintainability. Very recent research has investigated some of the issues involved in restructuring object oriented programs [15, 31]. Those efforts have tended to focus on inheritance, to achieve such goals as eliminating duplicate definitions of a variable in a program. Refactoring is much more complex that this, however. Refactoring not only involves manipulating inheritance hierarchies but also involves such tasks as ....
....(see the discussion in section 4.1.2) 55 Refactoring To Generalize: Creating an Abstract Superclass This chapter focuses on creating an abstract superclass that captures the behavior common to two classes. It can be generalized to work with any number of classes. Casais [30] and Bergstein [15] note that a useful behavior preserving program transformation is to move a function or variable to a common superclass from subclasses where it is identically defined. However, as this chapter describes defining an abstract superclass involves more than just moving up identically defined members. ....
[Article contains additional citation context not shown here]
Paul L. Bergstein. Object-preserving class transformations. In Proceedings of OOPSLA 91, 1991. 134
....policies for different application requirements. The elements of the DCDO solution are not necessarily unique and fundamentally different from existing techniques to solve related problems. In particular, the model and implementation uses ideas from schema evolution in object oriented databases [6, 7, 8, 19, 22, 54, 55, 56, 62, 63, 64], and from Microsoft s Component Object Model [15, 26, 53] However, these approaches were not designed for distributed object computing systems, which impose different constraints and challenges. High level designs appropriate for this environment have not yet been developed to take advantage of ....
Bergstein, P., "Object-preserving class transformations," OOPSLA `91: ObjectOriented Programming Systems, Languages, and Applications, Special issue of SIGPLAN Notices, vol. 26, no. 11, pp. 299-313, Phoenix, Arizona, October 1991.
....Inheritance of properties is going upwards by lattice, because the most general objects are located nearer to the bottom of lattice. We do not see reasons for such a definition of order and lattice. More pragmatic approach is taken into account when implementation of OODB languages is considered [13, 12, 2, 7]. Modelling dynamic aspects of OODB considers the following changes: 1. Changes on class lattice. They represent changes on class descriptions and on inheritance relationships between classes. Usually such changes are considred as schema or lattice evolution. 2. Changes on object base. They ....
Bergstein P. L. Object-Preserving Class Transformations, In: SIGPLAN NOTICES, Vol 26, No 11, 1991
....only hard to implement, they are hard to define. Consider the problem of finding a common superclass for two classes. It is not hard to move identically implemented operations and variables to the new superclass. In fact, it is possible to find a set of superclasses that minimize code duplication [Ber91, Cas91, Cas92, GM93]. These algorithms assume that operations will not change their name or be rewritten in any way, so the problem is one of deciding on a class hierarchy and where operations and variables are placed in it. If operations have to be renamed, split into pieces, or rewritten, then the problem becomes ....
.... to be able to change software so that responsibility is shifted from one object (like the engine) to another (like the car) Previous work on refactorings for object oriented programs focused on reorganizing inheritance hierarchies and moving variables and functions within inheritance hierarchies [Ber91, Cas91, Cas92, OJ93]. But it is possible to move variables and functions between aggregates and components just like they can be moved between subclasses and superclasses. This paper not only describes refactorings that refine aggregations by moving variables and functions between aggregate and component classes, it ....
Paul L. Bergstein. Object-preserving class transformations. In Proceedings of OOPSLA `91, 1991.
....declarations of the immediate subclasses, which, in some cases, is done automatically by the Smalltalk environment. 2.6. 3 Object extending transformations The object extending transformations [LHX94] are a proper extension of the object equivalent transformations as discussed by Bergstein [Ber91] Object equivalence transformations have the important property that both the original and the transformed schema define the same sets of instantiable classes with the same names and the same (direct or inherited) attributes. As the name object equivalence suggests, this property makes the ....
....For real world applications, this restriction seems to be too stringent. There is some common ground between Bergstein s work and the research I am doing, and therefore there has been a fruitful collaboration between the two of us [BH93] For example, the object equivalent transformations [Ber91] as well as the object extending transformations [LHX94] can be viewed from a language preserving viewpoint as well as from within the behavior preserving framework. 3.1.5 Change avoidance The philosophy behind the change avoidance approach is quite different from the ones we have seen so far. ....
[Article contains additional citation context not shown here]
Paul Bergstein. Object-preserving class transformations. In Andreas Paepcke, editor, Object-Oriented Programming Systems, Languages and Applications Conference, pages 299--313, Phoenix, Arizona, October 1991. ACM Press. Special Issue of SIGPLAN Notices, Vol.26, No.11.
....done is to change the class graph and recompile the adaptive program. Naturally, as the system evolves, the adaptive program itself may need to be transformed. Fortunately, if the update of the adaptive program happens to be one of a fairly large class of transformations (e.g. object preserving [Ber91] objectextending [LHX94, Hur95] language preserving [Ber94] then transforming the adaptive program can be automated too. 6 Moreover, in [Hur95] it was demonstrated that by using a Meta Object Protocol (MOP) one can use Adaptive Programming to have the software adapt while maintaining the ....
Paul Bergstein. Object-preserving class transformations. In Proc. OOPSLA'91, ACM SIGPLAN Sixth Annual Conference on Object-Oriented Programming Systems, Languages and Applications, pages 299--313, 1991.
....inheritance class hierarchy. This report extends our previous work by showing how an optimal class dictionary can be learned incrementally. The ability to expand a class organization incrementally as new object examples are presented is an important consideration in software engineering. 8. Ber91] Studies the decomposition of the object equivalence relation. 4 Trade publications 1. HSX91] The Demeter Method is a novel and effective approach to object oriented analysis, design and programming. It forms, together with the Demeter CASE Tools, the Demeter System. The Demeter System is a ....
....attention in the literature. This paper extends the previous work on the study of groups of classes (axiomatic structures, called class dictionary graphs) to the study of the evolution of groups of classes. Our results contain the object preserving class transformations, investigated in [Ber91] as a special case. The contributions of the paper are: 1. A formal study of a set of extension relations and transformations on class dictionary graphs. 2. A presentation of a small set of primitive transformations which form a minimal 5 and complete basis for the extension relations. 3. An ....
Paul Bergstein. Object-preserving class transformations. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, pages 299--313, Phoenix, Arizona, 1991. ACM Press.
....of data models (the propagation directive calculus) 2. A precise definition of growth plans based on the definition of partial class dictionary graphs in [LX93] 3. The concept of a minimally adequate test set for a growth plan. We reuse the definition of class dictionary graphs from [LX93, Ber91, LBSL91] of object graphs from [LX93, LBSL91] of semi and partial class dictionary graphs from [LX93] and of simple propagation directives from [LXSL91] The rest of the paper is organized as follows: Section 2 reviews a sequence of three increasingly more specific graph structures for ....
....inheritance is introduced to abstract 13 their similarities. The Demeter model, which describes the important structures used in the Demeter Method, has been developed for such a domain. Part of relations and is a kind of relations are used to describe relationships between classes. In [LBSL91, Ber91] class dictionary graphs are introduced based on these two kinds of relations, and the is a relations are expressed by alternation edges. Later we found that is a relations are not enough for describing the properties of inheritance, in terms of defining objects and describing programs. We split ....
[Article contains additional citation context not shown here]
Paul Bergstein. Object-preserving class transformations. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, pages 299-- 313, Phoenix, Arizona, 1991. ACM Press. SIGPLAN Notices, Vol. 26, 11 (November).
....a class dictionary graph and by reusing this graph in propagation patterns to formulate the functionality of an application. Propagation patterns are described formally in [LXSL91] and generalized propagation directives in [LX93a] Class dictionary graphs are described in detail in [LX93b, BL91, Ber91] As a convenience to the reader, all papers are available by anonymous ftp [LBH 91] The full featured demonstration version of the Demeter Tools C , containing the fourth implementation of the propagation pattern tool, is also available by ftp after you sign a license agreement which you ....
....which so far has only been used to express sequential programs. How can it be adapted to express programs for massively parallel or distributed architectures 18. Evolution: How can we semi automate the maintenance of propagation patterns under changing class structures The transformations in [Ber91] are useful for this purpose. Hur92] studies functionalitypreserving evolution of propagation patterns under class dictionary graph transformations discussed in [HLM93] Ber93] studies functionality preserving evolution of object oriented programs under syntaxpreserving class dictionary ....
Paul Bergstein. Object-preserving class transformations. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, pages 299--313, Phoenix, Arizona, 1991. ACM Press. SIGPLAN Notices, Vol. 26, 11 (November).
.... students have made significant contributions to the Demeter project, both to the code and to publications related to the system; the following papers were authored or co authored by graduate students: LR88a] LHR88] LR88b] LR89] LHR88] LH89a] LH89c] LH89b] LBSL90] Hol92] Ber91] BL91] LHSLX92] LBSL91] LX93a, LSLX92, LX93b, Kes93, LSLX93, SLHS94, SL93b, SL93a, BH93, HLM93, LHX93, LZHL94, LX93c] The following thesis has been completed: Hol93] 2 Bibliography ....
Paul Bergstein. Object-preserving class transformations. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, pages 299--313, Phoenix, Arizona, 1991. ACM Press. SIGPLAN Notices, Vol. 26, 11 (November).
....for Object Oriented and Language Design Karl Lieberherr Cun Xiao Northeastern University, College of Computer Science Cullinane Hall, 360 Huntington Ave. Boston MA 02115 lieber corwin.CCS.northeastern.EDU cunxiao corwin.CCS.northeastern.EDU phone: 617) 437 20 77, fax (617) 437 51 21 November 6, 1991 Texed at 20:29 November 6, 1991 Copyright c fl1991 Karl Lieberherr Abstract We give an axiomatic definition of the basic structures used by object oriented designers and programmers during the software development process. The key structure, called a class dictionary, is defined and mapped ....
....Design Karl Lieberherr Cun Xiao Northeastern University, College of Computer Science Cullinane Hall, 360 Huntington Ave. Boston MA 02115 lieber corwin.CCS.northeastern.EDU cunxiao corwin.CCS.northeastern.EDU phone: 617) 437 20 77, fax (617) 437 51 21 November 6, 1991 Texed at 20:29 November 6, 1991 Copyright c fl1991 Karl Lieberherr Abstract We give an axiomatic definition of the basic structures used by object oriented designers and programmers during the software development process. The key structure, called a class dictionary, is defined and mapped into C classes. A class ....
[Article contains additional citation context not shown here]
Paul Bergstein. Object-preserving class transformations. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, page ?, Phoenix, Arizona, 1991. ACM Press.
....and other growth plans. 2. The concept of a minimally adequate growth plan in the object view for a growth plan in the class view. 3. A detailed discussion of numerous applications of growth plans, e.g. to implementing object oriented code. We reuse the definition of class dictionary graphs from [LX91, BL91, Ber91, LBSL91], of object graphs from [LX91, LBSL91] of partial class dictionary graphs from [LX91] and of the learning algorithm from [LBSL91, BL91] 2 Growth plans A growth plan is defined with respect to a class dictionary graph. For a concise introduction to class dictionary graphs, please read the ....
Paul Bergstein. Object-preserving class transformations. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, pages 299--313, Phoenix, Arizona, 1991. ACM Press.
....class would cause the subsequent deletion of all instances of that class. Previous behavior could therefore not be preserved. The following list covers a wide variety of useful modifications of the schema. The list informally describes each transformation; for a formal definition, refer to [Ber91, LHX94]. Figure 8 illustrates most of the transformations. The figure presents a sequence of incremental transformations applied to the initial class graph number one. 28 Registry A registered Truck String Car Trailer Integer #Passenger #Passenger vehID Transport Vehicle 1 registered Registry A Truck ....
Paul Bergstein. Object-preserving class transformations. In Andreas Paepcke, editor, Object-Oriented Programming Systems, Languages and Applications Conference (OOPSLA) , pages 299--313, Phoenix, Arizona, October 1991. ACM Press. Special Issue of SIGPLAN Notices, Vol.26, No.11.
....for every node u where Abstract(u) there are only outgoing subclass edges. Given a class graph, it is straightforward to generate an equivalent flat one. Two class graphs are equivalent if they define the same set of objects. Object preserving class transformations has been studied by Bergstein [2]. We will henceforth assume that all class graphs are flat. 2.4 Object Graphs An object graph is a finite directed graph. Each node represents an object, and the function Class maps each node to its class , that is, a concrete class in some class graph. Each edge is labeled by an element of L. ....
Paul Bergstein. Object-preserving class transformations. In Proc. OOPSLA'91, ACM SIGPLAN Sixth Annual Conference on Object-Oriented Programming Systems, Languages and Applications, pages 299--313, 1991.
....in section 6 we present algorithms for checking the axiom for flat class dictionary graphs. The paper concludes with section 7 which discusses related work. 2 Structures for object oriented design Part of relations and kind of is a relations are used to describe relationships between classes. In [22, 4], class dictionary graphs are introduced based on these two kinds of relations, and kind of relations are expressed by alternation edges. Later we found that kind of relations are not enough for describing the properties of subtyping and inheritance, in terms of defining objects and describing ....
....vertex must be included in 23 A B C PA SA PC SC PB SB a c b Figure 17: An alternation cycle the partial class dictionary graph containing that vertex. Therefore the Inductiveness Axiom axiom is violated. Further results of the theory of class dictionary graphs are given in [22] 21] [4], 5] and [14] 4 Programming with class dictionary graphs We show with a simple example how we use class dictionary graphs to simplify programming. We have developed a CASE tool for C [34] the C Demeter System [26] which maps class dictionary graphs into a C class library. The C class ....
[Article contains additional citation context not shown here]
Paul Bergstein. Object-preserving class transformations. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, pages 299--313, Phoenix, Arizona, 1991. ACM Press. SIGPLAN Notices, Vol. 26, 11 (November).
....patterns to an existing design by evolving a framework for network protocols [Hun95] This motivated work on tool support for patterns. 12 2. 4 Transforming object oriented designs Bergstein defined a small set of object preserving class transformations which can be applied to class diagrams [Ber91]. Lieberherr implemented these transformations in the Demeter object oriented software environment [Lie91] Example transformations are deleting useless subclasses and moving instance variables between a superclass and a subclass. Bergstein s transformations are object preserving so they cannot ....
P. Bergstein. Object-Preserving Class Transformations. In Proceedings of OOPSLA '91, 1991. 132
....different designs, not just different function implementations. A number of transformations will require a significant degree of code analysis and would be error prone if performed by hand. Bergstein defines a set of object preserving class transformations that can be applied to class diagrams [Ber91]. Lieberherr implements these transformations in the Demeter object oriented software environment [Lie91] Example transformations are deleting useless subclasses and moving instance variables between a superclass and a subclass. Bergstein s transformations preserve objects so they cannot add, ....
P. Bergstein, "Object-Preserving Class Transformations", Proceedings of OOPSLA `91, 1991.
....design rules to support reusable classes. The authors argue that restructuring an object oriented program in line with these guidelines will improve its reusability and maintainability. Very recent research has investigated some of the issues involved in restructuring object oriented programs [15, 31]. Those e#orts have tended to focus on inheritance, to achieve such goals as eliminating duplicate definitions of a variable in a program. Refactoring is much more complex that this, however. Refactoring not only involves manipulating inheritance hierarchies but also involves such tasks as ....
....discussion in section 4.1.2) 78 Chapter 6 Refactoring To Generalize: Creating an Abstract Superclass This chapter focuses on creating an abstract superclass that captures the behavior common to two classes. It can be generalized to work with any number of classes. Casais [30] and Bergstein [15] note that a useful behavior preserving program transformation is to move a function or variable to a common superclass from subclasses where it is identically defined. However, as this chapter describes defining an abstract superclass involves more than just moving up identically defined members. ....
[Article contains additional citation context not shown here]
Paul L. Bergstein. Object-preserving class transformations. In Proceedings of OOPSLA `91, 1991.
....of class u have an instance variable l containing objects of class v. There is at most one construction edge with source u and label l. Each cycle in GC involves at least one construction edge. An edge u 3 v is a subclass edge, indicating that v is a subclass of u. Without lack of generality [3, 17, 14] we assume that class graphs are simple, i.e. every class is either abstract (all outgoing edges are subclass edges) or concrete (all outgoing edges are construction edges) In addition, if u 3 v 2 EC then v is concrete. Figure 1 shows an example class graph with an abstract class A and ....
Paul L. Bergstein. Object-preserving class transformations. In OOPSLA'91, ACM SIGPLAN Sixth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 299-313. ACM, November 1991. SIGPLAN Notices (26)11.
No context found.
Paul L. Bergstein. Object-preserving class transformations. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, pages 299--313, Phoenix, Arizona, 1991. ACM Press.
No context found.
Bergstein, P. L., Object-preserving class transformations, in: Proc. Conf. Object-oriented programming systems, languages, and applications (1991), pp. 299--313.
No context found.
P. L. Bergstein, "Object-preserving class transformations," in Conference proceedings on Object-oriented programming systems, languages, and applications, pp. 299--313, ACM Press, 1991.
No context found.
P. L. Bergstein. Object-Preserving Class Transformations. In OOPSLA '91 Conference Proceedings, pages 299--213. ACM Press, 1991.
No context found.
Bergstein, P. L., "Object-Preserving Class Transformations", Proceedings of OOPSLA 1991, ACM SIGPLAN Notices, Vol. 26, No. 11, pp. 299-313
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC