Traits are a programming language technology that promote the reuse of methods between unrelated classes. This paper reports on a refactoring of the Smalltalk collections classes using traits. The original collection ...
详细信息
Traits are a programming language technology that promote the reuse of methods between unrelated classes. This paper reports on a refactoring of the Smalltalk collections classes using traits. The original collection classes contained much duplication of code;traits let us remove all of it. We also found places where the protocols of the collections lacked uniformity;traits allowed us to correct these non-uniformities without code duplication. Traits also make it possible to reuse fragments of collection code outside of the existing hierarchy;for example, they make it easy to convert other collection-like things into true collections. Our refactoring reduced the number of methods in the collection classes by approximately 10 per cent. More importantly, understandability maintainability and reusability of the code were significantly improved.
The enriched semantic network (ESN) has previously been presented as an enhancement of the semantic network (SN) of the UMLS. The ESN's hierarchy is a DAG (Directed Acyclic Graph) structure allowing for multiple p...
详细信息
The enriched semantic network (ESN) has previously been presented as an enhancement of the semantic network (SN) of the UMLS. The ESN's hierarchy is a DAG (Directed Acyclic Graph) structure allowing for multiple parents. The ESN is thus more complex than the SN and can be more difficult to view and comprehend. We have previously introduced the notion of a metaschema for the SN as a compact abstraction to support SN comprehension. We extend the definition of metaschema to make it applicable to a DAG classification hierarchy, such as the one exhibited by the ESN. We specify the requirements for and describe the general process of deriving such a metaschema. We derive two particular metaschemas of the ESN based on a pair of partitions. These two metaschemas and their underlying partitions are compared. Both metaschemas serve as compact representations of the ESN, allowing for convenient viewing of its hierarchy and easier comprehension. (C) 2003 Elsevier Inc. All rights reserved.
Traits are a programming language technology that promote the reuse of methods between unrelated classes. This paper reports on a refactoring of the Smalltalk collections classes using traits. The original collection ...
详细信息
ISBN:
(纸本)9781581137125
Traits are a programming language technology that promote the reuse of methods between unrelated classes. This paper reports on a refactoring of the Smalltalk collections classes using traits. The original collection classes contained much duplication of code; traits let us remove all of it. We also found places where the protocols of the collections lacked uniformity; traits allowed us to correct these non-uniformities without code *** also make it possible to reuse fragments of collection code outside of the existing hierarchy; for example, they make it easy to convert other collection-like things into true collections. Our refactoring reduced the number of methods in the collection classes by approximately 10 per cent. More importantly, understandability maintainability and reusability of the code were significantly improved.
In relational databases it is often required to represent hierarchical structures with multiple inheritance. The choice of store method for this kind of structures is very important for fast retrieving of infromation....
详细信息
ISBN:
(纸本)9789549641332
In relational databases it is often required to represent hierarchical structures with multiple inheritance. The choice of store method for this kind of structures is very important for fast retrieving of infromation. On the basis of storing information about the structure in the attribute of the relational table, this paper proposes a way to track the inheritance path of every object and to simplify the table structure, Optimization of data retrieval end facilitated dialog with DBMS are also achieved.
This paper presents Java language from an object-oriented software construction perspective. It explains the implications of banning generics and multiple inheritance of classes, and explores the patterns and the idio...
详细信息
This paper presents Java language from an object-oriented software construction perspective. It explains the implications of banning generics and multiple inheritance of classes, and explores the patterns and the idioms used by the Java designers and programmers to redeem their benefits. The paper also discusses an alternative to multiple inheritance, as incorporated in Lava, which extends Java with constructs for type-safe automatic forwarding. (C) 2001 Elsevier Science Ltd. All rights reserved.
Object-oriented database schema design is still mostly an art. One of the difficulties encountered during design is typing conflicts induced by multiple inheritance. In this paper, we propose a method for treating suc...
详细信息
Object-oriented database schema design is still mostly an art. One of the difficulties encountered during design is typing conflicts induced by multiple inheritance. In this paper, we propose a method for treating such a kind of conflicts. Our approach to inheritance conflict solving consists of several ingredients. First, we rely on branding, to introduce 'type equivalence by name', thus allowing a designer to distinguish between structurally similar but semantically different types. However. we offer a heuristic that does not require a designer to explicitly state branding declarations. Second, we describe various kinds of conflicts, and we offer a set of procedures that analyze a schema to discover such conflicts, classify them, offering potential solutions, if possible. The procedures have been conceived for a design system that allows a designer maximum flexibility, while guiding him/her to a correct design. (C) 1999 Elsevier Science B.V. All rights reserved.
In spite of advances in various transformation systems [5], [8], the transformation of a nonmonotonic-logic-based requirements specification into a procedural (imperative) language program has not been investigated. T...
详细信息
In spite of advances in various transformation systems [5], [8], the transformation of a nonmonotonic-logic-based requirements specification into a procedural (imperative) language program has not been investigated. This paper presents a logic-based transformation system that can transform a nonmonotonic-logic-based specification, the Frame-and-Rule Oriented Requirement Specification Language (FRORL) [12], into procedural language programs. We discuss how to handle nonmonotonic inheritance in FRORL and then establish a matrix-based data flow and dependency analysis mechanism to find all the possible data transformation paths in a logic-based specification. Using a newly developed algorithm, we can adjust the execution sequence of a logic-based specification so that the functions included in the logic-based specification can be represented by a sequential procedural language program.
The static model, specified formally, and the dynamic model, represented by hierarchical state machines, are intimately related. By defining a mapping between the two, we are able to provide a definition of inheritanc...
详细信息
The static model, specified formally, and the dynamic model, represented by hierarchical state machines, are intimately related. By defining a mapping between the two, we are able to provide a definition of inheritance, multiple inheritance and behavioral subtyping for state machines based on that for formally specified types and classes, and provide a graphical representation for formal specifications in terms of state machines. The state machine notation is based on statecharts. It, however, supports both a declarative style, appropriate for types, and an imperative style, appropriate for classes. State machines may be parameterized and may be viewed from different perspectives, based on an arbitrary choice of state predicates. And states are interpreted not as an expression of concurrency, but result from a choice of independent state predicates. (C) 1998 Published by Elsevier Science B.V. All rights reserved.
Although seemingly simple and intuitive, the object model still contains ambiguous notions. For example, inheritance has been proved to convey two different meanings depending on whether it is behavior or implementati...
详细信息
Although seemingly simple and intuitive, the object model still contains ambiguous notions. For example, inheritance has been proved to convey two different meanings depending on whether it is behavior or implementation that is inherited. Another conceptually simple notion, multiple inheritance, has not yet been clearly formalized. In this paper, we start by looking at relationships between sibling classes (two immediate subclasses of a common parent). Siblings can be combined through multiple inheritance, or on the contrary, they can be mutually exclusive. We call the relation between incompatible siblings opposition, and show how it could help in formalizing object models. We then consider widening the explicit use of negation in object models. We argue that negative assertions could be used to validate the creation of new classes to ensure they are compatible with the intended uses of existing classes. Negation leads us to consider the implicit assumption behind object models, we propose to shift from the closed world assumption to the open world assumption.
暂无评论