|
The Software Construction Analogy is Broken:
It often seems that the effort to re-use software components is just as
difficult as building needed functionality from scratch. Most components are
generalized so that they can be used in a wide variety of situations - with the
result that any given piece of software made from pre-fab components has a whole
bunch of unused functionality left over - pipes that lead nowhere, half-walls
and stairways to dead ends. That extra functionality often makes it difficult to
learn about and use a component and adds substantially to the integration work.
It also means that the cost of developing the component's functionality has to
be recovered somehow. Creating the needed functionality from scratch is often
more efficient. All the extra functionality of a generalized component is left
out making it easier to learn and use, and it is perfectly integrated with the
other parts of the system immediately. Those who promote the construction
analogy in the form of component based development overlook the simplicity and
intuitiveness of "components" in construction. Any analogy or methodology which
deals with software components must explicitly recognize and address the
incredible complexity inherent in the concept of software components.
|
software quality
|
3/24/2003 12:46 PM
nick
|
New Window
Move/Edit
|