What is claimed is:
1. A plant package comprising:
a tubular sleeve, comprising:
a lower portion comprising a base portion having a lower end, an inner peripheral surface, an outer peripheral surface, and having an opening at the upper end, and an inner retaining space, and a skirt portion comprising a plurality of portions which extend the base portion; and
an upper portion connected to the outer peripheral surface of the base portion and detachable therefrom and surrounding the skirt portion, and wherein when the upper portion is detached from the base portion, the skirt portion is exposed allowing the skirt portion to extend from the base portion; and
a growing medium disposed within the inner retaining space of the base portion without a pot and having a botanical item disposed therein and wherein the botanical item is substantially surrounded and encompassed by the upper portion.
2. The plant package of claim 1 wherein the tubular sleeve is further defined as constructed from a material having a thickness in a range of from about 0.1 mil to about 30 mils.
3. The plant package of claim 1 wherein the tubular sleeve is further defined as constructed from a material having a thickness in a range of from about 0.5 mil to about 10 mils.
4. The plant package of claim 1 wherein the tubular sleeve is further defined as constructed from a material having a thickness in a range of from about 1 mil to about 5 mils.
5. The plant package of claim 1 wherein the tubular sleeve is further defined as constructed from a material selected from the group consisting of treated or untreated paper, metal foil, polymeric film, non-polymeric film, cardboard, fiber, cloth, burlap, and laminations or combinations thereof.
6. The plant package of claim 1 wherein the upper portion of the sleeve is detachable from the base portion thereof via a detaching element selected from the group consisting of perforations, tear strips and zippers.
7. The plant package of claim 1 wherein the upper portion is connected to the outer peripheral surface of the base portion via a bonding material and wherein the upper portion, when attached to the base portion, encloses the skirt portion.
8. The plant package of claim 1 wherein the skirt portion has a non-linear upper edge.
9. The plant package of claim 1 wherein the upper portion has an upper end which has a bonding material thereon for sealing the upper end of the upper portion.
10. The plant package of claim 1 wherein the lower end of the base portion is closed.
11. The plant package of claim 10 wherein the closed lower end of the base portion has a drainage hole therein.
12. The plant package of claim 1 further comprising ventilation holes.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method for component discovery from source code, the method comprising:
receiving source code;
determining business classes by excluding packages and classes in the source code identified at least one of as belonging to a presentation layer, as belonging to a data access layer, as models and as utilities;
extracting features from the business classes;
estimating similarity for business class pairs based on the extracted features;
clustering, by a processor, the business classes based on the similarity, wherein clusters generated by the clustering represent components of the source code; and
determining interfaces for the components based on the clustering.
2. The method of claim 1, wherein the business classes include suffixes manager, service or EJB (Enterprise JavaBeans) session beans.
3. The method of claim 1, wherein extracting features further comprises:
extracting textual, code and structural dependency based features.
4. The method of claim 3, wherein:
extracting textual features comprises extracting intermediate representation (IR) tokens from source code comments and identifiers;
extracting code features comprises extracting concept words embedded in business class names; and
extracting structural dependency based features comprises determining a function call in the source code for a first business class that calls a function for a second business class.
5. The method of claim 3, wherein:
extracting code features comprises extracting concept words embedded in business class names, extracting concept words embedded in public method identifiers used in the business classes, extracting packaging information for the business classes, and extracting inheritance and interface realization relationships for the business classes.
6. The method of claim 1, wherein estimating similarity for business class pairs based on the extracted features comprises:
populating a class name matrix that accounts for a frequency of occurrence of word concepts in a business class name;
applying term frequency-inverse document frequency (tf-idf) based automated weighting to the class name matrix; and
calculating class name similarity for the business class pairs by evaluating class name matrices corresponding to the business class pairs.
7. The method of claim 1, wherein estimating similarity for business class pairs based on the extracted features comprises:
populating a method name matrix that accounts for a frequency of occurrence of word concepts embedded in public methods of a business class;
applying term frequency-inverse document frequency (tf-idf) based automated weighting to the method name matrix; and
calculating method name similarity for the business class pairs by evaluating method name matrices corresponding to the business class pairs.
8. The method of claim 1, wherein estimating similarity for business class pairs based on the extracted features comprises:
calculating packaging based similarity for the business class pairs by evaluating packaging information for the business classes.
9. The method of claim 1, wherein estimating similarity for business class pairs based on the extracted features comprises:
including a class name in an inheritance and interface realization list for a current business class;
including names of other business classes in the inheritance and interface realization list that have the class name of the current business class in inheritance and interface realization lists of the other business classes; and
calculating inheritance and interface realization based similarity for the business class pairs based on evaluation of the inheritance and interface realization list for the current business class and an inheritance and interface realization list for the other business classes.
10. The method of claim 1, wherein estimating similarity for business class pairs based on the extracted features comprises:
determining a combined similarity for the business class pairs based on evaluation of textual, class name, method name, packaging, inheritance and interface realization, and structural based similarities.
11. The method of claim 1, wherein clustering the business classes based on the similarity comprises:
generating a set of seed clusters by using top weighted edges between business class pairs, the edges representing the similarity for the business class pairs.
12. The method of claim 1, wherein clustering the business classes based on the similarity comprises:
generating a set of seed clusters by using edges between business class pairs with non-zero inheritance and interface realization similarity, the edges representing the similarity for the business class pairs.
13. The method of claim 1, wherein clustering the business classes based on the similarity comprises:
generating a set of seed clusters based on a clique strength of nodes of edges between business class pairs, the edges representing the similarity for the business class pairs and the nodes representing the business classes.
14. The method of claim 1, wherein clustering the business classes based on the similarity comprises:
generating a set of seed clusters based on a characteristic of edges or nodes of the business class pairs, the edges representing the similarity for the business class pairs and the nodes representing the business classes; and
evaluating a modularisation quality (MQ) of the set of seed clusters.
15. The method of claim 1, wherein clustering the business classes based on the similarity comprises:
maximizing modularisation quality (MQ) of clusters based on movement of nodes between the clusters, the nodes representing the business classes.
16. The method of claim 1, wherein determining interfaces for the components comprises:
identifying public methods of the business classes in a cluster that are called by the business classes of other clusters.
17. The method of claim 1, further comprising:
determining component interactions based on public methods of a cluster that are called by the business classes of another cluster.
18. The method of claim 1, further comprising:
automatically labeling clusters by extracting dominant terms using class-names, textual vectors, and public method identifiers.
19. The method of claim 1, further comprising:
displaying a cluster as a polygon with nodes corresponding to the business classes in the cluster and edges between pairs of the business classes corresponding to the similarity for the business class pairs.
20. The method of claim 1, further comprising:
identifying borderline classes by identifying the business classes in a first cluster having a high similarity to the business classes in another cluster.
21. The method of claim 1, further comprising:
mapping a functional entity to a component by calculating a similarity between the functional entity and a cluster.
22. The method of claim 1, further comprising:
using the method to cluster a plurality of applications using different source code.
23. A component discovery system comprising:
a memory storing a module comprising machine readable instructions to:
receive source code;
determine business classes by excluding packages and classes in the source code identified at least one of as belonging to a presentation layer, as belonging to a data access layer, as models and as utilities;
extract features from the business classes;
estimate similarity for business class pairs based on the extracted features;
cluster the business classes based on the similarity, wherein clusters generated by the clustering represent components of the source code; and
determine interfaces for the components based on the clustering; and
a processor to implement the module.
24. A non-transitory computer readable medium having stored thereon machine readable instructions for component discovery, the machine readable instructions when executed cause a computer system to:
receive source code;
determine business classes by excluding packages and classes in the source code identified at least one of as belonging to a presentation layer, as belonging to a data access layer, as models and as utilities;
extract features from the business classes;
estimate similarity for business class pairs based on the extracted features;
cluster, by a processor, the business classes based on the similarity, wherein clusters generated by the clustering represent components of the source code; and
determine interfaces for the components based on the clustering.