Monday
16 Multi-Dimensional Separation of Concerns
in Object-Oriented Systems
Adam's Mark Hotel
Governor's Square 16
 
Separation of concerns is at the core of object-oriented software development. It can provide a host of well-known and crucial benefits, but only if one has the right modularization at the right time: the concerns that are separated must match the concerns one needs to deal with. Unfortunately, different development activities often involve concerns of dramatically different kinds. For example, changing a data representation in an object-oriented system is typically well localized because of modularization by class, whereas adding a new feature to a system typically involves invasive changes to many classes: the feature code is scattered across multiple classes, and tangled with other code within those classes. One therefore needs different modularizations for different purposes: sometimes by class, sometimes by feature, sometimes by aspect (e.g., distribution or persistence), role , variant or other criterion.

We use the term multi-dimensional separation of concerns to denote separation of concerns involving:

  1. Multiple, arbitrary kinds (dimensions) of concerns.
  2. Separation according to these concerns simultaneously ; i.e., a developer is not forced to choose a small number (usually one) of "dominant" dimensions of concern at the expense of others.
  3. Overlapping or interacting concerns. It is appealing to think of many concerns as being independent or "orthogonal," but this is rarely the case in practice. It is essential to be able to support interacting concerns, while still achieving useful separation.

This workshop is intended to bring together researchers in this burgeoning area, and practitioners who have experienced problems that can help to guide the research. Specific areas of interest include:

  1. Development scenarios illustrating the need for multi-dimensional separation of concerns.
  2. Illustrations of concern overlap or interaction.
  3. Flexible, concern-based modularization and remodularization.
  4. Multi-dimensional separation of concerns throughout the software lifecycle, especially handling of concerns that span lifecycle phases and software artifacts.
  5. Adaptive programming, aspect-oriented programming, composition filters, conceptual modules, role-modeling, subject-oriented programming, views, viewpoints and other related approaches.
  6. Theoretical foundations.
  7. Language support.
  8. Environment support.

Organizers:

Harold Ossher, IBM Thomas J. Watson Research Center
Email: ossher@watson.ibm.com

Peri Tarr, IBM Thomas J. Watson Research Center

Gail Murphy, University of British Columbia

Workshops
Submission Information
Workshops At
A Glance
Full Description
of All Workshops
Back To
Final Program

 OOPSLA'98 Home