Building modular object-oriented systems with reusable collaborations (tutorial session)

  • Authors:
  • Karl J. Lieberherr;David H. Lorenz;Mira Mezini

  • Affiliations:
  • UBS AG and College of Computer Science, Northeastern University, Boston, MA;College of Computer Science, Northeastern University, Boston, MA;Dept. of EE and Comp. Sci., University of Siegen, D-57068 Siegen, Germany

  • Venue:
  • Proceedings of the 22nd international conference on Software engineering
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

New approaches propose to deal with the tangling of logical units by extending the object-oriented language to support module (de)composition along more than one dimension of concern. The tutorial will briefly survey Aspect-Oriented Programming (@@@@ectJ tool), Adaptive Programming (the Demeter tool), and Hyper-dimensional Separation of Concerns (the Hyper/J tool). The primary focus of the tutorial, however, will be on A daptive Plug-and-Play Components (AP&PC) [2, 1].The AP&PC model enables the programmer to define reusable collaborations, in the sense of the Unified Modeling Language (UML), in separate modules. In the AP&PC approach, an application is built out of a set of base classes that lay down the static structure of the application and several modules of reusable collaborations that are non-intrusively adapted to the needs of the base classes by means of explicit connectors, or adapter constructs. Each module itself may be a composition of simpler collabortion modules. The adaptation includes the embedding of UML class diagrams into more elaborate UML class diagrams. We will show how such embeddings may be conveniently expressed using the traversal language of Adaptive Programming (which is also used in the XML traversal language called XPath.) We will discuss how the model supports the building of better modular object-oriented systems. In addition, the advantages and disadvantages of static versus dynamic adaptation of the reusable collaborations will be considered.In summary, the tutorial presents AP&PC and adapters as useful constructs to encapsulate logical units of design that cut across several classes. We compare AP&PC with other approaches to the tangling problem in software design and implementation.