License Model Meta Model Extension
The following UML class diagram describes the proposed approach for extending the meta model to manage licenses that apply to anything in the core meta model, e.g. applications, technology products, business processes, information.
All classes in the License_Model_Extension package are new and define the scope of the extension.
Please review the proposed classes and the following comments. When these are agreed, we'll create an update pack to apply to your repository to start testing this extension.
Download a larger version of this image
The licensing information will be managed in a new section of the EA_Support class hierarchy, called Cost_Management.
A License instance is used to capture the details of a particular license in your enterprise (e.g. our Oracle 11g license) and provides the constructs to capture all the potential variations that might need to be captured about a license.
In the diagram, the simple slots are represented by attributes, the instance slots by the relations, and are named by the relationship end-point names.
NOTE: where a relationship endpoint has no name, no slot should be created. Where a relationship has names on both endpoints, an inverse-slot relationship should be constructed.
License_Model and License_Type provides means of classifying the License. Extending the Enumeration abstract class, these provide the modeller with the ability to easily define new License_Models (the basis on which a license is applied and charged) and License_Types (classes of licenses, such as commercial, Open Source, Shareware etc.)
In reality, licensing is often defined as part of a deal for your enterprise and therefore the specifics of any license may have many unique variations. Additionally, many suppliers, software suppliers in particular, devise novel approaches to how products can be used and paid for.
To manage this variation, we have defined subclasses of Attribute and Attribute_Value to enable the modeller to define and manage the particular relevant details about their particular licenses. License_Attributes, define 'classes' of attributes that can be attached to a license, and the License_Attribute_Value represent the particular instances of a such an attribute on the license, with its defined value.
In this way, the modeller can define the relevant, specific details that they need to capture about a license, such as the subscription term, renewal date, review date, monthly cost etc.
Jonathan