Designing Components: Beyond Object-Oriented Design

David H. Lorenz, Northeastern University
John Vlissides, IBM T.J. Watson Research Center

This paper examines the importance of design in component-based programming and presents a conceptual model for addressing new design issues that component-based programming affords. We characterize the fundamental design decisions in component-based programming and how components expand the design space. We illustrate how a good object-oriented design does not necessarily make a good component-based design, and we identify design decisions that are not a concern in object-oriented design. We use JavaBeans-based examples to illustrate concretely how expertise in component-based design, as embodied in a component taxonomy and implementation space, impacts both design and the process of design. The results are not exclusive to JavaBeans---they can apply to any component architecture.

Technical Report NU-CCS-00-03, College of Computer Science, Northeastern University, November 2000.


A revised version of this report was published in ICSE '01.

Other reports