Results 1 -
2 of
2
Maximizing object reuse with a biological metaphor. Theory and practice of object systems
, 1997
"... Reusable objects components are usually organized in libraries. Improving the reusability of such libraries passes by recognizing that there are two parties to component reuse, with di erent (sometimes con icting) interests: reuse providers, who privilege optimality of implementation (e.g. to minimi ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Reusable objects components are usually organized in libraries. Improving the reusability of such libraries passes by recognizing that there are two parties to component reuse, with di erent (sometimes con icting) interests: reuse providers, who privilege optimality of implementation (e.g. to minimize redundancy, or to maximize domain content), and reusers, who privilege identi cation of assets (by optimal domain representation). These con icting optimality criteria can be mirrored by having separate hierarchies for types (interfaces) and classes (implementation code). In this paper, we propose a \biological metaphor " for object-oriented hierarchies, borrow some taxonomic numerical techniques for hierarchy construction, and apply them to organize classes and types separate and optimally. In particular, we present a mapping mechanism between types and classes; introduce a set of criteria to minimize the number of classes needed to implement a given set of types; use cladistic algorithms to construct minimal hierarchies of either types or classes; and combine these strands into an iterative type/class co-design process. The application of the approach is illustrated by its equivalence in several object-oriented languages. To provide necessary background, we include a brief introduction to biological classi cation and to cladistics, specially techniques for hierarchy deduction and minimality criteria. c 1997 John Wiley & Sons 1.
Ensuring Correctness of Java Frameworks: A Formal Look at JCF
, 1999
"... In this paper we propose a novel approach to speci cation, development, and veri cation of object-oriented frameworks employing separate interface inheritance and implementation inheritance hierarchies. In particular, we illustrate how our method of framework speci cation and veri cation can be used ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
In this paper we propose a novel approach to speci cation, development, and veri cation of object-oriented frameworks employing separate interface inheritance and implementation inheritance hierarchies. In particular, we illustrate how our method of framework speci cation and veri cation can be used to specify Java Collections Framework, which is a part of the standard Java Development Kit 2.0, and ensure its correctness. We propose to associate with Java interfaces formal descriptions of the behavior that classes implementing these interfaces and their subinterfaces must deliver. Verifying behavioral conformance of classes implementing given interfaces to the speci cations integrated with these interfaces allows us to ensure correctness of the system. The characteristic feature of our speci cation methodology is that the speci cation language used combines standard executable statements of the Java language with possibly nondeterministic speci cation statements. A speci cation of the intended behavior of a particular interface given in this language can serve asa precise documentation guiding implementation development. Since subtyping polymorphism in Java is based on interface inheritance, behavioral conformance of subinterfaces to their superinterfaces is essential for correctness of object substitutability inclients. As we view interfaces augmented with formal speci cations as abstract classes, verifying behavioral conformance amounts to proving class re nement between speci cations of superinterfaces and subinterfaces. Moreover, the logic frameworkthatwe use also allows veri cation of behavioral conformance between speci cations of interfaces and classes implementing these interfaces. The uniform treatment of speci cations and implementations and the relationships between them permits verifying correctness of the whole framework and its extensions.

