Previous Table of Contents Next


5.3.1 BusinessInformation Classes


5.3.1.1 Contact

   Each Contact instance collects together the various types of related contact information. Each Contact instance can be associated with multiple Email, Location, and Telephone instances. Conversely, each Email, Location, ResourceLocator, and Telephone instance can be associated with many Contact instances. The ordering constraints on the associations between these classes and the Contact class can be used to represent a prioritized sequence in which the various types of contact information should be used.

   A particular ResponsibleParty instance may have multiple instances of Contact associated with it via the ResponsiblePartyContact association. This association is ordered to support representation of the sequence in which Contact instances should be used. For example, a ResponsibleParty instance representing an employee might be associated with Contact instances representing their office, home, and mobile contact information with an indication that the employee should be contacted first at the office, then at home, and finally via their mobile phone.

   To maximize flexibility of the metamodel, Contact instances may provide contact information for multiple ResponsibleParty instances.

   Superclasses

   ModelElement

   References

   email

Identifies the Email instances associated with this Contact instance. The ordered constraint may be used to identify the order in which Email instances should be contacted.

class:

defined by:

multiplicity:

inverse:

Email
ContactEmail::email
zero or more; ordered
Email::contact

   location

Identifies the Location instances associated with this Contact instance. The ordered constraint may be used to identify the order in which Location instances should be contacted.

class:

defined by:

multiplicity:

inverse:

Location
ContactLocation::location
zero or more; ordered
Location::contact

   responsibleParty

Identifies the ResponsibleParty instances associated with this Contact instance.

class:

defined by:

multiplicity:

inverse:

ResponsibleParty
ResponsiblePartyContact::responsibleParty
zero or more
ResponsibleParty::contact

   telephone

Identifies the Telephone instance associated with this Contact instance. The ordered constraint may be used to identify the order in which Telephone instances should be contacted.

class:

defined by:

multiplicity:

inverse:

Telephone
ContactTelephone::telephone
zero or more; ordered
Telephone::contact

   url

Identifies the ResourceLocator instances associated with this Contact instance. The ordered constraint on the ResourceLocator association may be used to identify the order in which ResourceLocator instances should be contacted.

class:

defined by:

multiplicity:

inverse:

ResourceLocator
ContactResourceLocator::url
zero or more; ordered
ResourceLocator::contact

5.3.1.2 Description

   Instances of the Description class contain arbitrary textual information relevant to a particular ModelElement. While Description instances may contain any desired textual information, they will typically contain documentation or references to external reference information about the owning ModelElement.

   Any ModelElement may have multiple Description instances associated with it. Indeed, a ModelElement instance that is a Description instance may itself have multiple Description instances linked to it. Also, a hierarchies of Description instances can be constructed.

   Description instances are meant to hold descriptive textual information that will be stored in the metamodel itself. In contrast, Document instances are meant to describe the location documentary information stored outside the metamodel.

   Superclasses

   Namespace

   Attributes

   body

Contains a textual description of information pertaining to the owning ModelElement.

type:

multiplicity:

String
exactly one

   language

Contains an identification of the language in which the content of the body attribute is specified. If desired, the language specification may be applied to the name attribute derived from ModelElement as well.

type:

multiplicity:

Name
exactly one

   type

Contains a textual description of the type of information the Description represents. Specific contents are usage defined.

type:

multiplicity:

String
exactly one

   References

   modelElement

Identifies the ModelElement for which this Description instance is relevant.

class:

defined by:

multiplicity:

ModelElement
ModelElementDescription::modelElement
zero or more

   Constraints

   A Description instance may not describe itself [C-3-1].

5.3.1.3 Document

   The Document class represents externally stored descriptive information about some aspect of the modeled system. An instance of Document might be associated with one or more ModelElements. The name of a Document instance is derived from its superclasses.

   Although the purposes of the Description and Document types may overlap somewhat, their chief distinction is that Description instances are stored with the CWM metadata whereas Documentation instances are stored externally to the CWM metadata. Although there is an implication here that Documentation instances might represent more voluminous information than Description instances, there is no particular requirement that this be so.

   Because Documentation instances are themselves Namespace instances, hierarchical relationships between various externally stored documents can be represented.

   Superclasses

   Namespace

   Attributes

   reference

Contains a textual representation of the identification, and perhaps the physical location, of externally maintained documentary information about some aspect of the ModelElement(s) with which the Document instance is associated.

type:

multiplicity:

String
exactly one

   type

Contains a textual description of the type of information the Document represents. Specific contents are usage defined.

type:

multiplicity:

String
exactly one

   References

   modelElement

Identifies the ModelElement(s) for which this Document instance is relevant.

class:

defined by:

multiplicity:

ModelElement
DocumentDescribes::modelElement
zero or more

   Constraints

   A Document instance may not describe itself [C-3-2].

5.3.1.4 Email

   An Email instance identifies a single email address. Via a Contact instance, an email address can be associated with one or more ResponsibleParty instances. Email instances might, for example, be used by an automated tool to send an automatically generated email message to a ResponsibleParty instance responsible about some change of state for a particular ModelElement. Multiple Email instances may be associated with a single Contact instance and the ordering of the association between them may be used to represent the sequence in which the Email instances should be contacted.

   Because email addresses are first class objects within the CWM, they can be used for purposes beyond those associated with the CWMFoundation’s Business Information concepts.

   Superclasses

   ModelElement

   Attributes

   eMailAddress

A textual representation of an email address.

type:

multiplicity:

String
exactly one

   eMailType

Contains a textual representation of the type of the email address. Interesting values might include location information such as “home? or “work,? or perhaps an indication of the type of email system for which the eMailAddress is formatted, such as “SMTP? or “X.400.?

type:

multiplicity:

String
exactly one

   References

   contact

Identifies the Contact instance(s) for which this Email instance is relevant.

class:

defined by:

multiplicity:

inverse:

Contact
ContactEmail::contact
zero or more
Contact::email

5.3.1.5 Location

   Instances of the Location class represent physical locations. Note that the name of a Location is derived from its superclass, ModelElement.

   Because Locations are first class objects within the CWM, they can be used for purposes beyond those associated with the CWM Foundation’s Business Information concepts. If additional attributes about Location instances are required, they should be added by creating subtypes of the Location class and placing the additional attributes therein.

   Superclasses

   ModelElement

   Attributes

   locationType

Descriptive information about the character or identity of the Location instance.

type:

multiplicity:

String
exactly one

   address

The address of the Location instance. The precise content of this string is usage-defined.

type:

multiplicity:

String
exactly one

   city

The name of the city in which the Location instance is found. The precise content of this string is usage-defined.

type:

multiplicity:

String
exactly one.

   postCode

The postal code of the Location instance. The precise content of this string is usage-defined.

type:

multiplicity:

String
exactly one

   area

The area in which the Location instance is found. The precise content of this string is usage-defined, but a common usage would be to refer to a geographical subdivision such as a state or province.

type:

multiplicity:

String
exactly one

   country

The name of the country in which the Location instance is found. The precise content of this string is usage-defined.

type:

multiplicity:

String
exactly one

   References

   contact

Identifies the Contact instance(s) with which this Location instance is associated.

class:

defined by:

multiplicity:

inverse:

Contact
ContactLocation::contact
zero or more
Contact::location

5.3.1.6 ResourceLocator

   Instances of the ResourceLocator class provide a general means for describing the resources whose location is not defined by a traditional mailing address. For example, a ResourceLocator instance could refer to anything from a location within a building (“Room 317, third file cabinet, 2nd drawer?) to a web location (“www.omg.org?).

   Because they are first class objects in the CWM, ResourceLocator instances may also be used for purposes beyond those associated with the CWM Foundation’s Business Information concepts.

   Superclasses

   ModelElement

   Attributes

   url

Contains the text of the resource location. For Internet locations, this will be a web URL (Uniform Resource Locator) but there is no requirement that this be so. In fact, the string can contain any text meaningful to its intended use in a particular environment.

type:

multiplicity:

String
exactly one

   References

   contact

Identifies the Contact instance(s) for which the ResourceLocator instance is relevant.

class:

defined by:

multiplicity:

inverse:

Contact
ContactResourceLocator::contact
zero or more
Contact::url

5.3.1.7 ResponsibleParty

   The ResponsibleParty class allows representation of entities within an information system that are in some way interested in receiving information about, or are otherwise responsible for, particular ModelElements. Each ResponsibleParty may own multiple sets of contact information, and a single ResponsibleParty may be associated with many ModelElements.

   ResponsibleParty instances may represent any entity appropriate to the system being modeled and need not be limited to people. For example, a ResponsibleParty instance might represent an individual such as “George Washington,? a role (the “President?), or an organization (“Congress?), depending upon the needs of the system being modeled. Similarly, the precise semantics of the responsibility attribute are open to interpretation and may be adapted on a system-by-system basis.

   Because ResponsibleParty instances are Namespaces, they can be organized into hierarchies of ResponsibleParty instances, capturing organizational structures or similar relationships.

   Superclasses

   Namespace

   Attributes

   responsibility

Textual identification or description of the ResponsibleParty in a usage-dependent format.

type:

multiplicity:

String
exactly one

   References

   contact

Identifies the Contact instance(s) associated with a ResponsibleParty instance. The ordered constraint on this reference allows retention of the sequence in which multiple Contact should be employed.

class:

defined by:

multiplicity:

inverse:

Contact
ResponsiblePartyContact::contact
zero or more; ordered
Contact::responsibleParty

   modelElement

Identifies the model elements for which this ResponsibleParty instance has some interest or responsibility.

class:

defined by:

multiplicity:

ModelElement
ModelElementResponsibility::modelElement
zero or more

   Constraints

   A ResponsibleParty instance may not be responsible for itself. [C-3-3]

5.3.1.8 Telephone

   Instances of the Telephone class represent telephone contact information.

   Because telephones are first class objects within the CWM, they can be used for purposes beyond those associated with the CWM Foundation’s Business Information concepts.

   Superclasses

   ModelElement

   Attributes

   phoneNumber

A textual representation of the telephone’s number.

type:

multiplicity:

String
exactly one

   phoneType

A textual representation of the telephone’s type, such as “multi-line,? or its usage, such as “home,? “work,? “fax,? or “mobile.?

type:

multiplicity:

String
exactly one

   References

   contact

Identifies the Contact instance(s) for which the Telephone instance is relevant.

class:

defined by:

multiplicity:

Contact
ContactTelephone::contact
zero or more

   inverse: Contact::telephone