59 research outputs found

    Object-oriented programming with class dictionaries

    No full text
    A class dictionary defines all data structures which appear in a program as well as a language for describing data specified by the data structures. We demonstrate that class dictionaries are ideal for simplifying object-oriented programming. Our class dictionary based approach to object-oriented programming is independent of any particular programming language, so it is applicable to a large variety of object-oriented systems. The experience in designing and using over one hundred class dictionaries has resulted in a set of useful design techniques. This novel approach to object-oriented programming makes interesting links between language design, data structure design and data base design

    The Demeter method: an efficient way to build adaptive software

    No full text

    Demeter and Aspect-Oriented Programming

    No full text
    The objective of the Demeter method and tools is to improve the productivity of software developers by an order of magnitude. We hope to achieve this through a methodology and tools supported by a theory of adaptive and aspect-oriented programming. To make our results practically useful, we want to leverage existing commercial technology such as Java, the Unified Modeling Language (UML [GRB97]) and design patterns. Our recent work has focused on rethinking our Demeter/C++ tools and the corresponding theory and to implement the new results in Demeter/Java. Demeter/Java is an implementation of Adaptive Programming (AP) for Java. Demeter/Java programs consist of Java code together with programs in a small language to express traversals, visitor methods, and class diagrams. Demeter/Java also includes the coordination aspect Cool and the remote invocation aspect Ridl. Demeter/Java programs are typically written in a preventive maintenance style using traversal strategies for expressing obje..

    Component Enhancement: An Adaptive Reusability Mechanism for Groups of Collaborating Classes

    No full text
    We enhance the Demeter Method for object-oriented software development with the component model for describing the evolution of groups of collaborating classes. The model is based on class dictionary graphs [LBSL91, Ber91] and reusable behavior descriptions which are expressed by propagation in class dictionary graphs [LXSL91]. Our experience demonstrates that the component model lifts programming to a higher level of abstraction, it significantly reduces the size of programs and it makes them resilient to change and therefore we propose a reusability mechanism for components. Components are useful for the development of reusable software libraries, for application development, as well as for recording the history of object-oriented programs. An implementation of propagation patterns, which are an important part of components, and related papers are available by ftp [LBH + 91]

    Controlling the Complexity of Software Designs

    No full text
    Our research has focused on identifying techniques to develop software that is amenable to refactoring and change. The Law of Demeter (LoD) was one contribution in this effort. But it led to other problems. With the current state of the art focused on Aspect-Oriented Software Development (AOSD), it is useful to revisit the general objectives of the LoD and adapt it to the new ideas. Hence we introduce the Law of Demeter for Concerns (LoDC) and discuss the important intersection of these approaches with traversals. We explore the ramifications of the Laws of Demeter (LoD and LoDC) to achieve better separation of concerns through improved software processes. They are supported by language mechanisms that are implemented using novel applications of automata theory

    Demeter/adaptive programming

    No full text
    • …
    corecore