Skip to Main Navigation Skip to Content

Prioritize, Measure and Quantify CyberSecurity Risk

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:

  • UIModel
  • UIInheritances
  • UIResources
  • UIRelations
  • UIActions
  • ExtendedUIElements

The UI package depends on the following packages:

  • Action
  • Code
  • kdm
  • Source
  • Core

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.

Superclass

KDMModel

Associations

UIElement:UIElement[0..*] user interface elements owned by the given UIModel

Constraints

Semantics

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.

Superclass

KDMEntity

Associations

UIRelation:AbstractUIRelationship[0..*] UI relationships originating from the given UI element
abstraction:ActionElement[0..*] owned “abstraction” actions
implementation:AbstractCodeElement[0..*] grouped association to AbstractCodeElement from some CodeModel that are represented by the current UI element
source: SourceRef[0..1] Link to the physical artifact for the given UI element.

Constraints

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

Semantics

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.

Superclass

KDMRelationship

Constraints

Semantics

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.

Superclass

AbstractUIElement

Associations

UIElement:UIElement[0..*] UI elements owned by this UIResource

Constraints

  • UIResource should have at least one stereotype

Semantics

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.

Superclass

UIResource

Constraints

  • UIDisplay should have at least one stereotype

Semantics

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.

Superclass

UIDisplay

Semantics

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.

Superclass

UIDisplay

Semantics

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.

Superclass

UIResource

Constraints

Semantics

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.

Superclass

UIResource

Attributes

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.

Superclass

AbstractUIElement

Attributes

kind:String represents the nature of the action performed by this element

Associations

UIElement:UIEvent[0..*] UI events owned by this UIAction

Semantics

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.

Superclass

AbstractUIRelationship

Associations

from:AbstractUIElement[1]
to:AbstractUIElement[1]

Constraints

Semantics

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.

Superclass

AbstractUIRelationship

Associations

from:UIResource[1] the origin UI Resource
to:UIResource[1] the target UI Resource

Constraints

Semantics

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.

Superclass

AbstractUIRelationship

Associations

from:ActionElement[1] the ActionElement which displays a certain UI resource
to:UIResource[1] The target UI resource

Constraints

Semantics

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.

Superclass

AbstractUIRelationship

Associations

from:ActionElement[1] The ActionElement that dispalys a certain Image
to:Image[1] The tager Image element

Constraints

Semantics

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.

Superclass

Action::AbstractActionRelationship

Associations:

from:ActionElement[1] “abstracted” action owned by some resource
to:UIResource[1] the user interface resource being accessed

Constraints:

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.

Superclass

Action::AbstractActionRelationship

Associations:

from:ActionElement[1] “abstracted” action owned by some resource
to:UIResource[1] the user interface resource being accessed

Constraints:

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.

Superclass

Action::AbstractActionRelationship

Associations:

from:ActionElement[1] “abstracted” action owned by some resource
to:UIResource[1] the user interface resource being accessed

Constraints:

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

Superclass

AbstractUIElement

Constraints

UIElement should have at least one stereotype

Semantics

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

.Superclass

AbstractUIRelationship

Associations

from:AbstractUIElement[1] The origin UI element
to:KDMEntity[1] the target KDM entity

Constraints

UIRelationship should have at least one stereotype

Semantics

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.