Designing Components versus Objects: A Transformational Approach

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

A good object-oriented design does not necessarily make a good component-based design, and vice versa. What design principles do components introduce? This paper examines component-based programming and how it expands the design space in the context of an event-based component architecture. We present a conceptual model for addressing new design issues these components afford, and we identify fundamental design decisions in this model that are not a concern in conventional 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 comparable component architecture.

In Proceedings of the 23rd International Conference on Software Engineering, pages 253--262, Toronto, Canada, May 12-19 2001. ICSE 2001, IEEE Computer Society. (52k)

Entry in the ACM Digital Library (152k)

The slides from the ICSE presentation: (236k)

Talks: ICSE 2001, IBM Research Seminar, NU Phd Seminar Series, NU Programming Language Research Outreach Day.

	Author = "David H. Lorenz and John Vlissides",
	Crossref = "ICSE:2001",
	Pages = "253--262",
	Title = "Designing Components versus Objects: {A} Transformational Approach",
	URL = "",
	Year = 2001,
---------- ICSE crossref begin ----------
@String{PROC = "Proceedings of"}
@String{ICSE = "International Conference on Software Engineering"}
@String{PROC:ICSE2001 = PROC#" the 23$^{rd}$ "#ICSE}
@String{ICSE2001 = "ICSE 2001"}
	Address = {Toronto, Canada},
	Booktitle = PROC:ICSE2001,
	Key = ICSE2001,
	Month = may#{ 12-19},
	Organization = ICSE2001,
	Publisher = "{IEEE} Computer Society",
	Title = PROC:ICSE2001,
	Year = 2001,
---------- ICSE crossref end ----------