11. A computer program product for capturing software solution patterns and associated points of variability, where a software solution pattern is a reusable solution to a commonly occurring software design problem, the computer program product comprising a non-transitory computer-readable medium having computer-usable program code embodied therein, the computer-usable program code comprising: computer-usable program code that provides a first XML schema defining elements representing different point of variability (POV) types for points of variability of the software solution pattern, the elements belonging to an XML schema substitution group that enables the POV types to be substituted for one another by an end user to change POV types used to instantiate an instance of the software solution pattern, where the substitutable POV types of the XML schema substitution group are derived from an abstract complex POV type that forms a head element of the XML schema substitution group, where the substitutable POV types as derived comprise at least one of a simple POV type and a complex POV type, where the simple POV type comprises one of an integer, a string, a floating point number, and a real number, and where the complex POV type comprises one of a one-dimensional array of values and a multi-dimensional array of values, and where the substitutable POV types comprise at least one action that each specifies an operation to be performed with point of variability values and specifies at least one object that each action operates on with the point of variability values; computer-usable program code that generates, as a software solution pattern template, an instance of the first XML schema, the instance defining user-changed POV types derived from the abstract complex POV type and user-assigned default point of variability values for the user-changed POV types for a specific software solution pattern using the elements belonging to the XML schema substitution group; and computer-usable program code that instantiates, using the software solution pattern template, the instance of the software solution pattern comprising a user-assigned value for each of at least one of the user-changed POV types, where the instance of the software solution pattern applies the respective operation of each of the at least one action of the substitutable POV types to each of the respective at least one object, tracks dependencies between different points of variability within the instance of the software solution pattern, and updates responsive to any value changes of any points of variability any dependent points of variability that are dependent upon the respective changed points of variability.
15. The computer program product of claim 11 , further comprising computer-usable program code that enables a software solution pattern author to add new POV types to the XML schema substitution group within a pattern framework that inherit from the abstract complex POV type, and to subtract POV types from the XML schema substitution group within the pattern framework.