Both of these attributes hold only with a grain of salt. Virtualization simply creates a new platform on which we then depend. Reuse is often touted as the prime reason to move to component technology. While reuse is indeed an important economic and technical issue, it s not the main driver for component software. The two key arguments must be extensibility and evolvability.
Systems are extensible if new stuff can be added in such a way that old stuff can interact with it.
Systems are evolvable if old stuff can be replaced by new stuff to improve the system in terms of quality, features, or both. Extensibility and evolvability are not the same problem, although several component software mechanisms required for both are identical. The need to load and install new components dynamically is a shared requirement. Evolvability is hard because it isn t clear how to factor in evolutionary replacement of select components without threatening the entire system and its architecture. Cthere is nothing smaller to replace than an individual component Cand versioning requires component-platform support.