3. Publish components with specifications

- Component producer, on completion of software component, should make it    available.

- Publish specification, implementation, and executable at the same time.

            - Only specification, if producer plans to charge for use of component.

- Specification matches finished component, then synchronize the two to form usable component.

- Specification no longer matches the finished component, then it needs to be updated to reflect changes. 

- Four levels of component abstraction within component library:

            1.  Component Specification

            2.  Component Implementation

            3.  Component Executable

            4.  Component Deployment 

Maintain dependency links between levels for: