Re: Request restrictive inheritance



Date view Thread view Subject view Author view

Tom Mens (tommens@vub.ac.be)
Wed, 8 Mar 2000 10:43:35 +0100


> I am working on UML related research. I wanted more information on > "Restrictive Inheritance" wherein, you try to restrict the inheritance > from Base Classes to Derived Classes. This problem doesn't pertain to UML > alone, but to the Object Community as a whole. > > 1. Would anyone be kind enough to direct me to any research done on > "Restrictive Inheritance" in the Object World?? References to journals > and conference proceedings would be beneficial. Dear, concerning your question about Restrictive Inheritance, I can refer you to some related work that has been performed by the Reuse Contracts group of the Programming Technology Lab at the Vrije Universiteit Brussel. In the OOPSLA'96 paper [Steyaert&al 1996], reuse contracts are proposed as a kind of "disciplined inheritance" (to which you refer as "restrictive inheritance"). More precisely, the inheritance relationship between a base class and each of its derived classes is explicitly documented with the exact changes that have been made: "extension" means that a new operation or attribute has been added in the derived class "refinement" means that a new operation invocation or attribute reference has been added in the derived class, or the implementation of an operation has been refined "cancellation" (the inverse of "extension") means that an operation or attribute has been removed in the derived class (this operation is unavailable in most object-oriented languages due to the restrictions they impose on inheritance) "coarsening" (the inverse of "refinement") is used to remove operation invocations in derived classes "concretisation" is used to make an abstract operation in the base class concrete in the derived class "abstraction" is the opposite of "concretisation" The idea put forward in this paper and later work is that we can make use of this more precise characterisation of inheritance to deal with the so-called "fragile base class problem" that occurs when a base class is exchanged for a new version, while derived classes still depend on it. In those cases, semantic conflicts can occur. By documenting the base class exchange as well as the inheritance relationship by means of the above operations we can identify some of these unexpected conflicts and provide a means to deal with them. The more operations that are provided, the more precise we can deal with conflicts during base class exchange. In an OOPSLA'97 paper, Mira Mezini reported on a Smalltalk tool that makes use of the above ideas to deal with base class exchange. For more information about more recent work on reuse contracts, you can also take a look at the website, or send a mail to me for more information. References: [Mezini 1997] Mira Mezini. Maintaining the Consistency of Class Libraries During Their Evolution. Proceedings of OOPSLA '97, ACM SIGPLAN Notices, 32(10): 1-21, ACM Press, 1997. [Steyaert&al.1996] P. Steyaert, C. Lucas, K. Mens, and T. D'Hondt, "Reuse Contracts: Managing the Evolution of Reusable Assets," Proc. OOPSLA '96, ACM SIGPLAN Notices, Vol. 31, No. 10, 1996, pp. 268-286. Reuse contract homepage: http://prog.vub.ac.be/poolresearch/rcs/ Best Regards, ======================== Dr. Tom Mens Programming Technology Lab Dept. Computer Science Vrije Universiteit Brussel Pleinlaan 2, 1050 Brussel, BELGIUM Tel: +32 2 629 3581 Fax: +32 2 629 3525 http://prog.vub.ac.be


Date view Thread view Subject view Author view