The past 20 years of software engineering development has manifested a steady increase
in levels of software abstraction. Component-based development, loosely defined as the
process of building systems by way of combination, aggregation and integration of
pre-engineered and pre-tested software modules, is the latest manifestation of this trend.
Components are an evolution beyond objects, incorporating the best aspects of
object-oriented analysis and design while adding important engineering concepts such as
separating interface from implementation and enabling easier development through the
provision of rich runtime services.
Components are reusable chunks of function, encapsulated units of functionality that
expose well-defined connection points, much like a VCR exposes connection points for
antennae, audio, etc. These reusable chunks of code promise to be the Lego blocks of
computer systems, fostering a development caste system in which technically savvy
developers create components that non-programmers may assemble into sophisticated
applications they could not have created themselves.
In this talk I will review the beginnings of component-based development as an assembly
of widgets to form graphical user interfaces and trace this concept to a more generalized
component architecture extending to enterprise server functionality. The examples will
range from simplistic to moderately sophisticated and will utilize the JavaBeans component
model of the Java programming language.
Next: ROV
investigations of organic matter mineralization in continental shelf benthic habitats
Last updated: December 19, 2000