Each part or component is well defined and independently deployable.
Composition is the key technique by which systems of software components are constructed.
The composition step can be done before or after the delivery of the system. That is, a component-based application may be composed out of parts that were never tested together. Thus the most useful and reliable parts are those which have been tested independently in as many ways as possible. The Component Applications Group in Microsoft Research is developing tools, techniques, and a large component library to enable the development of sophisticated office, home and web-based applications. For the past three and a half years we have been working on two main efforts.