16. UI Package
The UI package defines a set of meta-model elements whose purpose is to represent facets of information related to user interfaces, including their composition, their sequence of operations, and their relationships to the existing software systems.
Organization of the UI Package
The UI package consists of the following 6 class diagrams:
The UI package depends on the following packages:
UIModel Class Diagram
The UIModel class diagram follows the uniform pattern for KDM models to extend the KDM framework with specific meta-model elements related to static representations of the principal components of a user interface. The class diagram shown in See – UIModel Class Diagram. captures these classes and their relations.
– UIModel Class Diagram
UIModel Class
The UIModel is the specific KDM model which corresponds to the user interface of the existing software system.
UIElement:UIElement[0..*] | user interface elements owned by the given UIModel |
UIModel provides a container for various user-interface elements. It is the implementer’s responsibility to arrange user-interface elements into one or more UIModel containers.
AbstractUIElement Class (abstract)
The AbstractUIElement is the abstract superclass for various concrete user interface elements. As such, it is the class that represents both compound and elementary items in a model of a system’s user interface.
implementation AbstractCodeElement should be owned by some CodeModel
implementation AbstractCodeElement should be subclasses of ComputationalObject or ActionElement
abstraction ActionElement should be owned by the same UIModel
It is the implementer’s responsibility to map specific user interface element types determined by the particular user-interface system of the existing software system, into concrete subclasses of the AbstractUIElement. It is the implementer’s responsibility to map each user interface element into some instance of the AbstactUIElement. Implementation elements are one or more ComputationalObject or ActionElement from some CodeModel that are represented by the current UI element. “Abstraction” actions can be used to represent precise semantics of the UI Element.
AbstractUIRelationship Class (abstract)
The AbstractUIRelationship is the abstract superclass for various user interface relationships.
It is the implementer’s responsibility to map specific user interface association types determined by the particular user-interface system of the existing software system, into concrete subclasses of the AbstractUIRelationship. It is the implementer’s responsibility to map each user interface association into some instance of the AbstactUIRelationship.
UIInheritances Class Diagram
The UIInheritances class diagram defines how classes of the UI package subclass core meta-model elements from the KDM Core package. The classes and associations that make up the UIInheritances class diagram are shown in See – UIInheritances Class Diagram..
– UIInheritances Class Diagram
UIResources Class Diagram
The UIResource class diagram defines several specific KDM containers that own collections of user interface elements. The class diagram shown in See – UIResources Class Diagram. captures these classes and their relations.
– UIResources Class Diagram
UIResource Class (generic)
The UIResource is the superclass for several user interface elements that can be containers for other user interface elements. For example, it represents a compound unit of display. This is a generic element.
UIElement:UIElement[0..*] | UI elements owned by this UIResource |
UIResource is a generic element with under specified semantics. It can be used as an extension point.
UIDisplay Class (generic)
The UIDisplay is the superclass of Screen and Report. It represents a compound unit of display.
UIDisplay is a generic element with under specified semantics. It can be used as an extension point.
Screen Class
The Screen is a compound unit of display, such as a Web page or character-mode terminal that is used to present and capture information. The screen may be composed of multiple instances of AbstractUIElement and its subclasses.
Report Class
The Report is a compound unit of display, such as a printed report, that is used to present information. The report may be composed of multiple instances of AbstractUIElement and its subclasses.
UIField Class
The UIField is a unit of display, such as a control on a form, a text field on a character-mode terminal, or a field printed on a report.
UIEvent class
The UIEvent class is a meta-model element representing various events and callsbacks associated with user interfaces. This class follows the KDM event pattern, common to Resource Layer packages.
kind:String | represents the nature of the action performed by this Event |
UIAction class
UIAction class follow the pattern of a “resource action” class, specific to the UI package. The nature of the action represented by a particular element is designated by its “kind” attribute. Descriptions of the common platform action kind are provided in Appendix 2. Resource Layer actions.
kind:String | represents the nature of the action performed by this element |
UIElement:UIEvent[0..*] | UI events owned by this UIAction |
UIRelations Class Diagram
The UIRelations class diagram provides basic meta-model constructs to define the binding between elements of a display and their content. The class diagram shown in See – UIRelations Class Diagram. captures these classes and their relations.
– UIRelations Class Diagram
UIFlow Class
The UIFlow relationship class captures the behavior of the user interface as the sequential flow from one instance of Display to another.
from:AbstractUIElement[1] | |
to:AbstractUIElement[1] |
UILayout Class
The UILayout relationship class captures an association between two instances of Display – one that defines the content for a portion of a user interface, and one that defines its layout.
from:UIResource[1] | the origin UI Resource |
to:UIResource[1] | the target UI Resource |
UIActions Class Diagram
The UIActions class diagram defines several KDM relations for the UI package. It provides basic meta-model constructs to define the sequence of display in a user interface, and the mapping between a user interface and the events it may generate.
The class diagram shown in See – UIActions Class Diagram. captures these classes and their relations.
– UIActions Class Diagram
Displays Class
The Displays relationship class represents the relationship between an instance of CallableInterface and the instance of UIElement that is presented on the interface as a result of the execution of the CallableInterface.
from:ActionElement[1] | the ActionElement which displays a certain UI resource |
to:UIResource[1] | The target UI resource |
DisplaysImage Class
The DisplaysImage captures the relationship between an image file – an instance of Image – and its presentation on a user interface – an instance of DisplayUnit.
from:ActionElement[1] | The ActionElement that dispalys a certain Image |
to:Image[1] | The tager Image element |
ManagesUI class
ManagesUI class follows the pattern of a “resource action relationship”. It represents various types of accesses to user interface resources that are not related to the flow of data to and from the resource. ManagesUI relationship is similar to Addresses relationship from Action Package. The nature of the operation on the resource is represented by the “kind” attribute of the UIAction that owns this relationship through the “abstracted” action container property.
Action::AbstractActionRelationship
from:ActionElement[1] | “abstracted” action owned by some resource |
to:UIResource[1] | the user interface resource being accessed |
This relationship should not be used in Code models
ReadsUI class
ReadsUI class follows the pattern of a “resource action relationship”. It represents various types of accesses to user interface resources where there is a flow of data from the resource. ReadsUI relationship is similar to Reads relationship from Action Package. The nature of the operation on the resource is represented by the “kind” attribute of the UIAction that owns this relationship through the “abstracted” action container property.
Action::AbstractActionRelationship
from:ActionElement[1] | “abstracted” action owned by some resource |
to:UIResource[1] | the user interface resource being accessed |
This relationship should not be used in Code models
WritesUI class
WritesUI class follows the pattern of a “resource action relationship”. It represents various types of accesses to user interface resources where there is a flow of data to the resource. WritesUI relationship is similar to Writes relationship from Action Package. The nature of the operation on the resource is represented by the “kind” attribute of the UIAction that owns this relationship through the “abstracted” action container property.
Action::AbstractActionRelationship
from:ActionElement[1] | “abstracted” action owned by some resource |
to:UIResource[1] | the user interface resource being accessed |
This relationship should not be used in Code models
ExtendedUIElements Class Diagram
The ExtendedUIElements class diagram defines two “wildcard” generic elements for the UI model as determined by the KDM model pattern: a generic UI entity and a generic UI relationship.
The class diagram shown in See – ExtendedUIElements Class Diagram. captures these classes and their relations.
– ExtendedUIElements Class Diagram
UIElement Class (generic)
The UIElement class is a generic meta-model element that can be used to define new “virtual” meta-model elements through the KDM light-weight extension mechanism
UIElement should have at least one stereotype
A UI entity with under specified semantics. It is a concrete class that can be used as the base element of a new “virtual” meta-model entity types of the UI model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.
UIRelationship Class (generic)
The UIRelationship relationship is a generic meta-model element that can be used to define new “virtual” meta-model elements through the KDM light-weight extension mechanism
from:AbstractUIElement[1] | The origin UI element |
to:KDMEntity[1] | the target KDM entity |
UIRelationship should have at least one stereotype
A UI relationship with under specified semantics. It is a concrete class that can be used as the base element of a new “virtual” meta-model relationship types of the UI model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.