Software Nirvana: Bringing the hardware component model to software engineering

Wm. Paul Rogers
Monterey Bay Aquarium Research Institute

Friday, September 25, 1998
12:00 Noon—Pacific Forum

rogers duke-240.jpg (19238 bytes)

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