9. A computer programming product for managing hierarchically related software components, comprising: a memory; two or more software component descriptors, each descriptor, stored on the memory, containing information about a software component of a plurality of software components; one or more aggregate descriptors, stored on the memory, containing information about the two or more software component descriptors and aggregates of the plurality of software components; and logic, stored on the memory for execution on a processor, for: defining hierarchical interrelationships among the plurality of software components and aggregates of the plurality of software components to produce a component hierarchy; managing lifecycles, access controls, interrelationships, versioning and a list of the plurality of software components to maintain the consistency of the component hierarchy; filtering the plurality of software components based upon the hierarchical interrelationships; integrating a particular software component selected from the filtered software components into a software application; and modifying the hierarchical interrelationships based upon associations generated by the selection of the particular software component.
9. A computer programming product for managing hierarchically related software components, comprising: a memory; two or more software component descriptors, each descriptor, stored on the memory, containing information about a software component of a plurality of software components; one or more aggregate descriptors, stored on the memory, containing information about the two or more software component descriptors and aggregates of the plurality of software components; and logic, stored on the memory for execution on a processor, for: defining hierarchical interrelationships among the plurality of software components and aggregates of the plurality of software components to produce a component hierarchy; managing lifecycles, access controls, interrelationships, versioning and a list of the plurality of software components to maintain the consistency of the component hierarchy; filtering the plurality of software components based upon the hierarchical interrelationships; integrating a particular software component selected from the filtered software components into a software application; and modifying the hierarchical interrelationships based upon associations generated by the selection of the particular software component. 11. The computer programming product of claim 9 , wherein the hierarchical interrelationships are defined based upon associations between the corresponding components or aggregates.