Tuesday Morning
45 Using Subject-Oriented Programming to Overcome Common Problems in Object-Oriented Software Development and Evolution
Harold Ossher, IBM T.J. Watson Research Center
Peri Tarr, IBM T.J. Watson Research Center
Colorado Convention
Center - C105
 
Subject-oriented programming (SOP) is a practical approach to object-oriented (OO) programming-in-the-large. SOP addresses some well-known limitations of OO development, without forcing developers to adopt new languages or abandon the OO paradigm, including weaknesses in:
  • Non-invasive system extension and evolution: Subclassing and design patterns help but are insufficient.
  • Large-scale reuse and integration: With its focus on small-scale objects, OO development cannot achieve large-scale component reuse or integration without preplanning.
  • System decomposition: By-object system decomposition is useful for data-centric system components, but others (e.g., feature; function) are better for other components. Without them, maintainability, comprehensibility, and reusability suffer.
  • Multi-team and decentralized development: OO development leads to contention over shared, centralized classes. It forces developers to agree on one domain model, rather than using task-specific models.

This tutorial presents SOP and shows participants how to use it, both conceptually and using tool support. It also briefly contrasts SOP with other related approaches (e.g., AOP), to aid participants in selecting the best approach for a given problem.

Participants will learn to identify and address, using SOP, some difficult and pervasive problems in their OO development activities. They will also learn how SOP promotes the use of design patterns, frameworks, and reusable components.

Attendee Background: Familiarity with OO concepts and design patterns, and at least some experienced in developing OO applications, are required.

Harold Ossher co-invented subject-oriented programming in 1993. He manages a group that has built tool support for SOP in C++ and prototype support for Smalltalk, and conducts related research.

Peri Tarr has a strong background in software engineering and the application of subjects to it. She leads the tool development effort for subject-oriented programming in Java and has been exploring issues in subject-oriented software engineering throughout the software lifecycle.

Tutorials
at a Glance
Tracks
Full Description
of all Tutorials
Final Program

 OOPSLA'98 Home