A package is a grouping of model elements. Packages group any set of zero or more model elements, including packages themselves, with the condition that no model element exists in more than one package. The package also defines the extent of names.
Explanation
A package is a grouping element, and can be used much in the same way as a folder in your favorite computer software. It collects or organizes elements into groups, based on an arbitrary classification or grouping. The UML leaves the decision as to what should be grouped up to the modeler.
Important Points
Package elements may be prefixed with visibility.
Elements in a package can have an additional adornment of a visibility property. The visibility expresses whether elements in the package are available to elements in other packages.
Packages define a name space that uniquely identifies an element.
One of the properties of a package is name space. Name space is a similar concept to scope; it defines a region in which names must be unique. When packages are nested the name spaces are also nested and reference to a particular element of a name space can be made by reference to its nested packages.
The contents of packages can be shown in a number of different ways.
The contents of packages can have a number of different representations.
A use case package is related to the general package element because it is an example of the use of the package within the use case model. The use case package does not add additional semantics and can be used to group any elements in this model. The usual contents of a use case package are use cases or actors or groups of both actors and use cases and the association and generalization relationships that connect them. use case packages themselves can be contained in a use case package to any level of nesting.
A model is related to a package, as it is a stereotype of a package. The pre-defined stereotype adds additional semantics. A small triangle is added to the package icon, or the word model is included in text to indicate that a package has the additional meaning of a model. The model is a view of the physical system from a particular point of reference. There can be a number of different models and the purpose of the model determines what elements it will group together.
A subsystem, in its most vanilla form, has the same basic representation as the package - the "folder" adding a fork icon or displaying the word subsystem in guillemets. The subsystem does however add some additional behavior to the package, as it is a type of classifier. Its parentage is both a package and a classifier. It can be represented with a number of compartments containing both the services it offers and a description of how those services are realized.