Copyright © 2003
2003-06-09
| Revision History | |
|---|---|
| Revision 0.1 | 2003-05-19 |
| Initial public release. | |
| Revision 0.2 | 2003-06-09 |
| Corrected some cardinalities, extended descriptions, added operations. | |
Abstract
This document contains the class diagrams and class descriptions that resulted from the static analysis.
Table of Contents
The following diagram depicts the data and meta data structures of the MRMS.
A Resource is composed of its Attributes and is an instance of a ResourceType which specifies which Attributes the Resource may have.
---
---
A ResourceType specifies (by composition) the Attributes that a Resource of this type has.
name (String): the name of the ResourceType
---
Abstract base class for attribute types that a ResourceType is composed of.
name (String): the name of the AttributeType
onlyPredefinedValuesAllowed (Boolean): if true, the user may only select the predefined values for an Attribute that has this type; if false, he may enter another value as well
mandatory (Boolean): if true, the user must enter a value for Attributes of this type
frozen (Boolean): if true, the user may not change the value of Attributes of this type
---
Concrete AttributeType for NumericalAttributes.
predefinedValues (Number[]): an array specifying predefined values for Attributes of this type
minValue (Number): the minimum value Attributes of this type may have
maxValue (Number): the maximum value Attributes of this type may have
---
Concrete AttributeType for TextAttributes.
predefinedValues (String): an array specifying predefined values for Attributes of this type
minSize (Number): the minimum number of characters Attributes of this type may have
maxSize (Number): the maximum number of characters Attributes of this type may have
---
Abstract base class for attributes that a Resource is composed of.
---
---
Concrete Attribute for a numerical property characterisation of a Resource.
value (Number): numerical property characterisation of a Resource
---
Concrete Attribute for a textual property characterisation of a Resource.
value (Number): textual property characterisation of a Resource
---
A Link references the two Resources that are linked together by it. Its consistency is checked against the LinkRule it is referenced with.
---
---
A LinkRule defines characteristics of a consistent Link. It aggregates two LinkRuleEnds.
name (String): name of the LinkRule.
---
A LinkRuleEnd belongs to a LinkRule. One LinkRuleEnd of a LinkRule specifies that Resources of the referenced ResourceType may be linked (to Resources of the ResourceType referenced by the other LinkRuleEnd) according to the referenced CardinalitySpec.
---
---
Specifies the minimum and maximum cardinality for a link rule end of a link rule. Example: A LinkRule has two ends LinkRuleEnd l1 and LinkRuleEnd l2. The LinkRuleEnd l1 references the ResourceType t1 and CardinalitySpec c1 while l2 references t2 and c2. If c1 is min=1 and max=4, this means that one specific Resource of type t2 must have at least 1 and may have up to 4 Links to Resources of type t1. The CardinalitySpec c1 may reference a NumberAttributeType of the ResourceType t2.
minCardinality (Number): value for the minimum cardinality; will be ignored when there is a “min”-reference to a NumberAttributeType, in this case the NumberAttribute's value will be used instead
maxCardinality (Number): value for the maximum cardinality; will be ignored when there is a “max”-reference to a NumberAttributeType, in this case the NumberAttribute's value will be used instead
---
The following diagram depicts the classes for user management of the MRMS.
Value class, encapsulating the authentication data of a user.
userName (String): the user's name
password (String): the user's password
---
Class for user accounts of the MRMS. Its instances may play Roles in the system.
passwordExpirationDate (Date): date after which the user has to enter a new password
realName (String): real name of the user
static checkPasswordStrength(password: String): Boolean
Checks, if the given password String is strong enough (minimum length, mixed letters and numbers, ...) to be accepted by the system.
password: the password to be checked
The boolean value true, iff the password is strong enough.
---
Control class of the use case “User changes password”.
static findUser(authData: AuthenticationData): User
Searches the system for a User matching the given AuthenticationData.
authData: the AuthenticationData to search for
If a matching User object could be found it is returned, otherwise the operation returns the null pointer.
---
Control class of the use case “User logs in”.
A Role defines which AccessRights its players (Users) have.
name (String): name of the Role
isAdministratorRole (Boolean): defines if Users of the Role have administration rights
---
Abstract base class for access rights. If a Role references an AccessRight it has this AccessRight. Users have the AccessRights which the Roles they play have.
---
---
Concrete AccessRight that defines owner's authority of working with Resources that are of a specific ResourceType.
canCreate (Boolean): defines if Resources of the referenced ResourceType may be created
canDelete (Boolena): defines if Resources of the referenced ResourceType may be deleted
---
Concrete AccessRight that defines owner's authority of working with Atrributes of a specific AttributeType that belongs to a specific ResourceType.
canRead (Boolean): defines if Attributes of the referenced AttributeType may be read
canWrite (Boolean): defines if Attributes of the referenced AttributeType may be written
---
Concrete AccessRight that defines owner's authority of creating and deleting Links according to a specific LinkRule.
canLink (Boolean): defines if Links according to the referenced LinkRule may be created
canUnlink (Boolean): defines if Links according to the referenced LinkRule may be deleted
---
The following diagram depicts the classes needed to create a filtered collection of Resources.
A Filter is used to get a subset of all Resources of the referenced ResourceType. The Filter is defined by the Constraints it is composed of.
---
getMatchingResources(): Resource[]
Searches the system for Resources matching the referenced Constraints.
---
An array of the matching Resources.
---
Control class of the use case “Create filtered collection of resource entries”.
Abstract base class for constraints. Constraints are used by a Filter to describe a specific state that Resource must fulfill to pass.
---
matches(resource: Resource): Boolean
Tests, if the given Resource matches this Constraint.
resource: the Resource to be tested
The boolean value true, iff the given Resource matches this Constraint.
---
Class Filter.
An AttributeConstraint is a concrete Constraint that checks whether an Attribute of the referenced AttributeType is either equal to the referenced Attribute or lays between the two referenced min- and max-Attributes.
---
---
A LinkageConstraint is a concrete Constraint that checks whether a Resource matches the linkage state that is described by the following attributes. A LinkageConstraint references a LinkRule it refers to: the Link Rule defines a minimum and a maximum cardinality (min and max); the Resource has a current cardinality (cur).
underLinked (Boolean): cur < min
free (Boolean): cur = 0
linkable (Boolean): cur < max
unlinkable (Boolean): cur >= max
overLinked (Boolean): cur > max
---
The following diagram depicts the main classes needed to realize an interaction between the user and the MRMS. (Currently we don't have included the control classes for the use cases.)
A SessionState describes a session of interaction between the MRMS and a user. A User is logged in in a SessionState if it references that User.
---
loggedIn(user: User): Boolean
Checks whether the given User is logged in in this SessionState.
---
The boolean value true, iff the given User is logged in in this SessionState.
---
All control classes.
The UI is responsible for providing all facilities the MRMS needs to interact with a user.
---
informAboutError(text: String): void
The user is informed about an error that occured in the system.
text: the description of the error that occured
---
---
Any control class.
requestConfirmation(text: String): Boolean
The user is requested to confirm or cancel an action.
text: the question to be answered by the user
The boolean value true, iff the user confirmed
---
Any control class.
requestAuthenticationData(): AuthenticationData
Requests authentication data (username and password) from the user.
---
An AuthenticationData object holding the values for username and password provided by the user.
AuthenticationAbortedException if the user cancelled the operation
Control class of the use case “User logs in”.
showMainDialog(): void
The user is shown the main dialog for interaction with the system.
---
---
---
Main control class.
showUserForm(io_user: User): void
The user is shown a form for editing a User's attributes.
io_user: the User to be edited
---
---
Control class of the use case “Create user account”.
showPasswordForm(io_password: String): void
The user is shown a form for editing a User's password.
io_password: the password String to be edited
---
---
Control class of the use case “User changes password”.
showRoleForm(io_role: Role): void
The user is shown a form for editing a Role's name.
io_role: the Role to be edited
---
---
Control class of the use case “Create role”.
showRoleAssignmentForm(io_user: User): void
The user is shown a form for editing a User's role assignment.
io_user: the User whose role assignment should be edited
---
---
Control class of the use case “Edit role assignment of user account”.
showRoleAccessRightsForm(io_role: Role): void
The user is shown a form for editing a Role's access rights.
io_role: the Role to be edited
---
---
Control class of the use case “Edit rights for role”.
showResourceTypeForm(io_resourceType: ResourceType): void
The user is shown a form for editing a ResourceType's name and the AttributeTypes it is composed of.
io_resourceType: the ResourceType to be edited
---
---
Control class of the use case “Define resource type”.
showLinkRuleForm(io_linkRule: LinkRule): void
The user is shown a form for editing a LinkRule's attributes.
io_linkRule: the LinkRule to be edited
---
---
Control class of the use case “Define link rule”.
showResourceOverviewForm(resources: Resource[]): void
The user is shown a list of the given Resources.
resources: the Resources to be shown
---
---
Main control class and control class of the use case “Create filtered collection of resource entries”.
showResourceForm(io_resource: Resource): void
The user is shown a form for editing a Resource's Attributes.
io_resource: the Resource to be edited
---
---
Control classes of the use cases “Create resource” and “Edit resource”.
showFilterForm(): Filter
The user is shown a form for specifying a Filter.
---
A Filter configured according to the users input.
---
Control class of the use case “Create filtered collection of resource entries”.