Component-Based Design

Component-Based Software Engineering

Image credit: Michael Dziedzic

“Pluggable Reflection: Decoupling Meta-Interface and Implementation.”

Co-authored with John Vlissides, observes that reflection remains a second-class citizen in current programming models, where it’s assumed to be imperative and tightly bound to its implementation. In contrast, most object-oriented APIs allow interfaces to vary independently of their implementations. Components take this separation a step further by describing unforeseeable attributes—the key to pluggable third-party components. This paper describes how reflection can benefit from a similar evolutionary path. Presented at ICSE ‘03.

“Pluggable AOP: designing aspect mechanisms for third-party composition”

Co-authored with Sergei Kojarski, designs language extensions as third-party plug-and-play component, thus enabling the integration of multiple aspect extensions with the same base language. Presented at OOPSLA ‘05.

“Designing Components versus Objects: A Transformational Approach.”

Co-authored with John Vlissides, explores the component design space as an outgrowth of the object-oriented design space as constrained by the JavaBeans component model. Develops a taxonomy for the component design space and contrasts it with a corresponding taxonomy for objects. Presented at ICSE ‘01.

“Execution Patterns in Object-Oriented Visualization.”

Co-authored with Wim De Pauw, John M. Vlissides, and Mark N. Wegman, describes new visualization techniques for object-oriented programs. Presented at COOTS ‘98.

David H. Lorenz
David H. Lorenz
Dept. of Mathematics and Computer Science

Senior Faculty at Open University