- Both Sections: Tuesday, April 2
Homework can submitted via email or printout by deadline.
Partial credit to any distributed model, with significant credit going to a peer-to-peer approach.
[Your answers to this question will be graded for consistency with your answers in (1), and so may differ from those provided here.]
[Your answers to this question will be graded for consistency with your answers in (1), and so may differ from those provided here.]
The cost savings from reusing components are the cost savings from not having to write (and test) that component. These savings are more-or-less proportional to the component size: the larger the component, the greater the cost saving.
But one must also consider the new costs associated with reuse: the costs of searching for and understanding the components chosen for reuse, and the costs of adapting other parts of the system to accommodate the reused components. These costs do not scale with the size of the component. For small components, these new costs may be considerable compared to any savings. This reduces the total cost saving, perhaps even making reuse more expensive than creating the component from scratch.
In specifying and designing a system, you are restricting the range of components that can be used to implement it. If the search for existing components to serve in a system is deferred until after the system has been specified and designed, the likelihood that any preexisting components in this range (that is, components fitting into the design) can be found is relatively small.
What are more likely to be found are components that are "close" to what is required, necessitating changes to the design (or to the components), if component reuse is to be applied as a strategy. These accomodations add extra costs, and offset the benefits of using preexisting components as part of the system implementation.
Better would be to sketch a design, look for candidate components, and then, with these components in mind, to "firm up" the design. This strategy is much more likely to result in being able to reuse existing components.