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.
icse2001.ps.gz (52k)
Entry in the ACM Digital Library (152k)
The slides from the ICSE presentation: icse6x6.ps.gz (236k)
Talks: ICSE 2001, IBM Research Seminar, NU Phd Seminar Series, NU Programming Language Research Outreach Day.
@InProceedings{Lorenz:2001:DCO, Author = "David H. Lorenz and John Vlissides", Crossref = "ICSE:2001", Pages = "253--262", Title = "Designing Components versus Objects: {A} Transformational Approach", URL = "http://www.ccs.neu.edu/home/lorenz/papers/icse01/", 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"} @Proceedings{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 ----------