version 1.0

The Human-Computer Interaction Design Ontology (HCIDO)

domain ontology from HCI-ON

HCIDO published paper

Castro, M. V. H. B., Barcellos, M. P., Falbo, R. de A., & Costa, S. D. (2021). Using Ontologies to aid Knowledge Sharing in HCI Design. Proceedings of the XX Brazilian Symposium on Human Factors in Computing Systems, 1–7. 10.1145/3472301.3484327


1. Ontology Description

The Human-Computer Interaction Design Ontology (HCIDO) aims to provide a well-founded consensual conceptualization about the HCI design of interactive systems. In its current version, HCIDO is focused on the design of interactive software systems, rather than interactive computer systems (i.e., it does not address the design of hardware aspects). HCIDO addresses the knowledge intersection between SE and HCI domains by connecting software design concepts from SDRO (a domain ontology of SEON) with HCI core concepts from HCIO (a core ontology of HCI-ON).


2. Related Ontologies

Networked ontologies used by HCIDO:


3. Ontology Models

Figure 1 presents the packages of the HCIDO Modularization.

Figure 1. HCIDO Modularization.


3.1. Design Object

Figure 2 presents the conceptual model of the HCIDO - Design Object subontology.

Figure 2. HCIDO - Design Object conceptual model.

The design object is addressed as an Interactive Software System in HCIDO. Although HCI design involves both the design of software and hardware elements of an interactive computer system, HCIDO addresses HCI design in the context of software development, thus hardware aspects are treated as (non-functional) Requirements. Hence, a Mental HCI Design Object is a Mental Software Design Object specified by one or more Mental HCI Design Specifications. HCI Design Specifications that describe Mental HCI Design Specifications are realized by one or more HCI Design Objects, which are Interactive Software Systems playing the role of Software Design Objects, implementing one or more Mental HCI Design Objects. An HCI Design Object is composed of HCI Design Components, which are User Interface Programs that play the role of Software Design Components and implement Mental HCI Design Components. Each HCI Design Component has its own structure, appearance and behavior and usually is composed of other HCI Design Components (e.g., a piece of code that implements the user interface of a “product” component, which can be used both in a “list of products” component and in a “shopping cart” component).

HCI Design Components can be classified into two types considering the role they play in the human-computer interaction. A Presentational HCI Design Component (e.g., a text label) implements Mental User Observable States and aims to present information that can be perceived through users’ senses. An Interactive HCI Design Component (e.g., a button), in turn, implements Mental User Input Resulting States and is expected to be actioned or not in certain conditions after actions performed by users of the interactive system. It is important to notice that these two types are not disjoint, i.e., an HCI Design Component can be both Presentational and Interactive. HCI Design Components are materialized as Loaded HCI Design Components, which are Loaded User Interface Program Copies that play the role of Loaded Software Design Components (i.e., copies of programs that deal with user interface aspects loaded in the memory of an interactive computer system).

The Program Copy Execution of a Loaded HCI Design Component that materializes a Presentational HCI Design Component brings about User Observable States. If a User Observable State satisfies the Mental User Observable State which the component implements, this means that the Presentational HCI Design Component was correctly implemented. Conversely, a User Input Resulting State may trigger a Program Copy Execution of a Loaded HCI Design Component that materializes an Interactive HCI Design Component. The implementation of an Interactive HCI Design Component is correct when a User Input Resulting State satisfies a Mental User Input Resulting State implemented by an Interactive HCI Design Component and the triggered Program Copy Execution comes from a Loaded HCI Design Component that materializes that same Interactive HCI Design Component.


3.2. Design Specification

Figure 3 presents the conceptual model of the HCIDO - Design Specification subontology.

Figure 3. HCIDO - Design Specification conceptual model.

An HCI Designer is a Software Designer that uses his or her skills to directly contribute to the creation of an HCI Design Specification, a particular type of Software Design Specification that deals with human-computer interaction aspects. The mental aspects of HCIDO are treated as subtypes of Software Design Propositions which are the propositional content of Software Designer Mental Moments inhering in HCI Designers. A Mental HCI Design Choice is a Mental Software Design Choice defining how the human-computer interaction should be implemented, including aspects related to the system’s appearance, the disposition of components in space and time and their expected behaviors in response to user actions.

Mental HCI Design Choices can be motivated by previous Mental HCI Design Choices or by User Requirements, which are Requirements that refer to User Goals (i.e., Requirements concerned with users’ needs or capabilities that should be addressed by the system in order to allow users to achieve their goals in an effective, efficient, safe and satisfying manner). User Requirement Artifacts are Requirement Artifacts that describe User Requirements (e.g., user requirements written as user stories). When performing an HCI design process based on ISO 9241-210 (ISO, 2019), for example, User Requirement Artifacts are usually produced in the activity “specifying the user requirements”. It is important to highlight that the motivation for the Mental HCI Design Choices is not always explicit in real-world situations (e.g., when design choices are motivated by designer’s tacit knowledge).

The content of a Mental HCI Design Choice may be a general choice regarding the system (e.g., the definition of which colors should be used in the system’s interface), or a specific choice related to Mental HCI Design Components, which are Mental Software Design Components that can be perceived or actioned by users (e.g., a text label and a button) through the user interface. A Mental HCI Design Choice related to a Mental HCI Design Component that can be perceived by users is also associated to Mental User Observable States, which are Mental Computing Resulting States describing how one or more Mental HCI Design Components should be presented to users. For example, in a Mental HCI Design Choice of “displaying products in a paginated list with 12 products per page”, the product and the list are Mental HCI Design Components. The product may have a default layout and an alternative one that is used when some field is empty (e.g., presenting a product without picture in a different manner). These two layouts are described by Mental User Observable States resulting from Mental HCI Design Choices associated to the same Mental HCI Design Component (i.e., the product). Conversely, a Mental HCI Design Choice related to a Mental HCI Design Component that can be actioned by users is associated to Mental User Input Resulting States, which are Software Design Propositions describing situations, conditions or constraints related to actions that users can or cannot perform in some Mental HCI Design Components (e.g., a button that can only be clicked after filling all required fields in a form, a text input field that accepts only numbers).

A Mental HCI Design Specification is a Mental Software Design Specification consisting of a set of Mental HCI Design Choices. It represents ideas that give form to a detailed description in the designer’s mind about HCI structural and behavioral aspects of the interactive system. These ideas can be encoded in one or more HCI Design Specifications, which is a Software Design Specification describing Mental HCI Design Specifications (e.g., a hand-drawn sketch or a text document). HCI Design Specifications encode one or more HCI Design Choices, which are Software Design Choices that describe Mental HCI Design Choices (e.g., the fragment of a sketch showing the fields of a form arranged in two columns or a sentence written in a document describing the expected behavior after a form submission). Hence, HCI Design Choices are the physical representation of Mental HCI Design Choices, which can be used for communication and evaluation purposes.

Three subtypes of HCI Design Specifications are defined in HCIDO: Wireframes, Mockups and Functional Prototypes. A Wireframe is a Document outlining the basic structure of the interactive system’s user interface (e.g., how elements are visually organized when displayed at the screen) in a low fidelity sketch, which does not address specific details such as colors and typography. A Mockup, in turn, is a higher fidelity Document depicting how the interactive system should be presented to users, similar to screenshots of the system’s future screens. Finally, a Functional Prototype is a piece of code (i.e., a Software Item) intended to present basic functionality of an interactive system or of its components. It is developed for early evaluation purposes and cannot be considered the final implementation. We decided to represent only these three types because our focus was to illustrate some kinds of HCI design specifications, and we did not intend to create a complete taxonomy. Moreover, the survey results presented in Chapter 4 showed that these were the most popular artifacts produced by HCI designers. In a design process, it is common that low fidelity artifacts are used in initial steps and are refined into higher fidelity artifacts as feedback is provided by other stakeholders and the solution gets more mature.


4. Concepts Definition

The following table shows the definitions for HCIDO concepts.

Concept Definition

Functional Prototype

An HCI Design Specitication that is a piece of code (i.e., a Software Item) intended to present basic functionality of an interactive system or of its components. It is developed for early evaluation purposes and cannot be considered the final implementation.

HCI Design Choice

A Software Design Choice that describes Mental HCI Design Choices. It is a physical representation of Mental HCI Design Choices, which can be used for communication and evaluation purposes.
E.g.: The fragment of a sketch showing the fields of a form arranged in two columns or a sentence written in a document describing the expected behavior after a form submission.

HCI Design Component

A User Interface Program that plays the role of Software Design Component and implements Mental HCI Design Components, having its own structure, appearance and behavior. It can be composed of other HCI Design Components.

HCI Design Object

An Interactive Software System that plays the role of Software Design Object and implements a Mental HCI Design Object.

HCI Design Specification

A Software Design Specification that describes Mental HCI Design Specifications, encoding one or more HCI Design Choices.
E.g.: a hand-drawn sketch or a text document.

HCI Designer

A Software Designer that uses his or her skills to directly contribute to the creation of a specification containing design choices about human-computer interaction aspects of the interactive software system being designed.

Interactive HCI Design Component

An HCI Design Component that implements Mental User Input Resulting States and is expected to be triggered or not in certain conditions after actions performed by users of the interactive system.

Loaded HCI Design Component

A Loaded User Interface Program that plays the role of Loaded Software Design Component (i.e., a copy of a programs that deals with user interface aspects loaded in the memory of an interactive computer system).

Mental HCI Design Choice

Mental Software Design Choices defining how the human-computer interaction should be implemented, including aspects related to the system’s appearance, the disposition of components in space and time and their expected behaviors in response to user actions.

Mental HCI Design Component

A Mental Software Design Component that can be perceived or triggered by users through the user interface.
E.g.: a text label and a button.

Mental HCI Design Object

A Mental Software Design Object specified by a Mental HCI Design Specification that refers to an Interactive Software System being designed (i.e., what is expected to exist after the HCI design effort).

Mental HCI Design Specification

A Mental Software Design Specification consisting of a set of Mental HCI Design Choices. It represents the ideas that give form to a detailed description in the designer’s mind about HCI structural and behavioral aspects of the design object (i.e., it specifies the Mental HCI Design Object).

Mental User Input Resulting State

A Software Design Proposition describing situations, conditions or constraints related to actions that users can or cannot perform in a Mental HCI Design Component.
E.g.: a button that can only be clicked after filling all required fields in a form, a text input field that accepts only numbers.

Mental User Observable State

A Mental Computing Resulting State decscribing how a Mental HCI Design Component should be presented to users.
E.g.: presenting a collection of products as a list or in a 3x3 grid.

Mockup

An HCI Design Specification that is a higher fidelity Document depicting how the interactive system should be presented to users, similar to screenshots of the system’s future screens.

Presentational HCI Design Component

An HCI Design Component that implements Mental User Observable States and aims to present information that can be perceived through users' senses.

User Requirement

A Requirement that refers to User Goals (i.e., a Requirement concerned with users' needs or capabilities that should be addressed by the system, in order to allow users to achieve their goals in an effective, efficient, safe and satisfying manner).
src.: adapted from: (ISO 9241-220:2019)

User Requirement Artifact

Requirement Artifacts that describe User Requirements.
E.g.: user requirements written as user stories.

Wireframe

A HCI Design Specification that is a Document outlining the basic structure of the interactive system’s user interface (e.g., how elements are visually organized on the screen) in a low fidelity sketch, which does not address specific details such as colors and typography.

HCIDO concepts definition.

5. Detailed Concepts

Human-Computer Interaction Design Ontology (HCIDO) detailed concepts.


HCIDO::Functional Prototype


Functional Prototype


Specializes:

HCIDO::HCI Design Specification

SysSwO::Software Item

Definition:

An HCI Design Specitication that is a piece of code (i.e., a Software Item) intended to present basic functionality of an interactive system or of its components. It is developed for early evaluation purposes and cannot be considered the final implementation.

Relations:


HCIDO::HCI Design Choice


HCI Design Choice


Specializes:

SDRO::Software Design Choice

Definition:

A Software Design Choice that describes Mental HCI Design Choices. It is a physical representation of Mental HCI Design Choices, which can be used for communication and evaluation purposes.
Example: The fragment of a sketch showing the fields of a form arranged in two columns or a sentence written in a document describing the expected behavior after a form submission.

Relations:

HCI Design Choice (0..*) describes (1..*) Mental HCI Design Choice
HCI Design Choice (0..*) /motivated by (0..*) User Requirement Artifact
HCI Design Choice (0..*) /motivated by (0..*) HCI Design Choice
HCI Design Specification (1..*) <>-- (1..*) HCI Design Choice


HCIDO::HCI Design Component


HCI Design Component


Specializes:

HCIO::User Interface Program

SDRO::Software Design Component

Definition:

A User Interface Program that plays the role of Software Design Component and implements Mental HCI Design Components, having its own structure, appearance and behavior. It can be composed of other HCI Design Components.

Relations:

HCI Design Component (0..*) implements (1..*) Mental HCI Design Component
HCI Design Component (0..*) <>-- (0..*) HCI Design Component
HCI Design Object (1..1) <>-- (1..*) HCI Design Component
Loaded HCI Design Component (0..*) materialization of (1..1) HCI Design Component


HCIDO::HCI Design Object


HCI Design Object


Specializes:

SDRO::Software Design Object

HCIO::Interactive Software System

Definition:

An Interactive Software System that plays the role of Software Design Object and implements a Mental HCI Design Object.

Relations:

HCI Design Object (1..1) <>-- (1..*) HCI Design Component
HCI Design Object (0..*) realizes (0..*) HCI Design Specification
HCI Design Object (0..*) implements (1..*) Mental HCI Design Object


HCIDO::HCI Design Specification


HCI Design Specification


Specializes:

SDRO::Software Design Specification

Definition:

A Software Design Specification that describes Mental HCI Design Specifications, encoding one or more HCI Design Choices.
Example: a hand-drawn sketch or a text document.

Relations:

HCI Design Specification (1..*) <>-- (1..*) HCI Design Choice
HCI Design Specification (0..*) describes (1..*) Mental HCI Design Specification
HCI Design Object (0..*) realizes (0..*) HCI Design Specification
HCI Designer (1..*) responsible for (0..*) HCI Design Specification


HCIDO::HCI Designer


HCI Designer


Specializes:

SDRO::Software Designer

Definition:

A Software Designer that uses his or her skills to directly contribute to the creation of a specification containing design choices about human-computer interaction aspects of the interactive software system being designed.

Relations:

HCI Designer (1..*) responsible for (0..*) HCI Design Specification


HCIDO::Interactive HCI Design Component


Interactive HCI Design Component


Specializes:

HCIDO::HCI Design Component

Definition:

An HCI Design Component that implements Mental User Input Resulting States and is expected to be triggered or not in certain conditions after actions performed by users of the interactive system.

Relations:

Interactive HCI Design Component (0..*) expects to be actioned by (1..*) Mental User Input Resulting State


HCIDO::Loaded HCI Design Component


Loaded HCI Design Component


Specializes:

SDRO::Loaded Software Design Component

HCIO::Loaded User Interface Program Copy

Definition:

A Loaded User Interface Program that plays the role of Loaded Software Design Component (i.e., a copy of a programs that deals with user interface aspects loaded in the memory of an interactive computer system).

Relations:

Loaded HCI Design Component (0..*) materialization of (1..1) HCI Design Component


HCIDO::Mental HCI Design Choice


Mental HCI Design Choice


Specializes:

SDRO::Mental Software Design Choice

Definition:

Mental Software Design Choices defining how the human-computer interaction should be implemented, including aspects related to the system’s appearance, the disposition of components in space and time and their expected behaviors in response to user actions.

Relations:

Mental HCI Design Choice (1..*) concerns (0..*) Mental HCI Design Component
Mental HCI Design Choice (1..*) concerns (0..*) Mental User Observable State
Mental HCI Design Choice (1..*) concerns (0..*) Mental User Input Resulting State
Mental HCI Design Choice (0..*) motivated by (0..*) Mental HCI Design Choice
Mental HCI Design Specification (1..*) <>-- (1..*) Mental HCI Design Choice
User Requirement (0..*) motivates (0..*) Mental HCI Design Choice
HCI Design Choice (0..*) describes (1..*) Mental HCI Design Choice


HCIDO::Mental HCI Design Component


Mental HCI Design Component


Specializes:

SDRO::Mental Software Design Component

Definition:

A Mental Software Design Component that can be perceived or triggered by users through the user interface.
Example: a text label and a button.

Relations:

HCI Design Component (0..*) implements (1..*) Mental HCI Design Component
Mental HCI Design Choice (1..*) concerns (0..*) Mental HCI Design Component


HCIDO::Mental HCI Design Object


Mental HCI Design Object


Specializes:

SDRO::Mental Software Design Object

Definition:

A Mental Software Design Object specified by a Mental HCI Design Specification that refers to an Interactive Software System being designed (i.e., what is expected to exist after the HCI design effort).

Relations:

HCI Design Object (0..*) implements (1..*) Mental HCI Design Object
Mental HCI Design Specification (1..*) specifies (1..*) Mental HCI Design Object


HCIDO::Mental HCI Design Specification


Mental HCI Design Specification


Specializes:

SDRO::Mental Software Design Specification

Definition:

A Mental Software Design Specification consisting of a set of Mental HCI Design Choices. It represents the ideas that give form to a detailed description in the designer’s mind about HCI structural and behavioral aspects of the design object (i.e., it specifies the Mental HCI Design Object).

Relations:

Mental HCI Design Specification (1..*) specifies (1..*) Mental HCI Design Object
Mental HCI Design Specification (1..*) <>-- (1..*) Mental HCI Design Choice
HCI Design Specification (0..*) describes (1..*) Mental HCI Design Specification


HCIDO::Mental User Input Resulting State


Mental User Input Resulting State


Specializes:

SDRO::Software Design Proposition

Definition:

A Software Design Proposition describing situations, conditions or constraints related to actions that users can or cannot perform in a Mental HCI Design Component.
Example: a button that can only be clicked after filling all required fields in a form, a text input field that accepts only numbers.

Relations:

Interactive HCI Design Component (0..*) expects to be actioned by (1..*) Mental User Input Resulting State
User Input Resulting State (0..*) satisfies (0..*) Mental User Input Resulting State
Mental HCI Design Choice (1..*) concerns (0..*) Mental User Input Resulting State


HCIDO::Mental User Observable State


Mental User Observable State


Specializes:

SDRO::Mental Computing Resulting State

Definition:

A Mental Computing Resulting State decscribing how a Mental HCI Design Component should be presented to users.
Example: presenting a collection of products as a list or in a 3x3 grid.

Relations:

Presentational HCI Design Component (0..*) aims to present (1..*) Mental User Observable State
User Observable State (0..*) satisfies (0..*) Mental User Observable State
Mental HCI Design Choice (1..*) concerns (0..*) Mental User Observable State


HCIDO::Mockup


Mockup


Specializes:

HCIDO::HCI Design Specification

SysSwO::Document

Definition:

An HCI Design Specification that is a higher fidelity Document depicting how the interactive system should be presented to users, similar to screenshots of the system’s future screens.

Relations:


HCIDO::Presentational HCI Design Component


Presentational HCI Design Component


Specializes:

HCIDO::HCI Design Component

Definition:

An HCI Design Component that implements Mental User Observable States and aims to present information that can be perceived through users' senses.

Relations:

Presentational HCI Design Component (0..*) aims to present (1..*) Mental User Observable State


HCIDO::User Requirement


User Requirement


Specializes:

RSRO::Requirement

Definition:

A Requirement that refers to User Goals (i.e., a Requirement concerned with users' needs or capabilities that should be addressed by the system, in order to allow users to achieve their goals in an effective, efficient, safe and satisfying manner).
Source: adapted from: (ISO 9241-220:2019)

Relations:

User Requirement (0..*) motivates (0..*) Mental HCI Design Choice
User Requirement (0..*) refers to (1..*) User Goal
HCI Evaluation Criteria (0..*) refers to (0..*) User Requirement
User Requirement Artifact (0..*) describes (1..1) User Requirement


HCIDO::User Requirement Artifact


User Requirement Artifact


Specializes:

RSRO::Requirement Artifact

Definition:

Requirement Artifacts that describe User Requirements.
Example: user requirements written as user stories.

Relations:

User Requirement Artifact (0..*) describes (1..1) User Requirement
HCI Design Choice (0..*) /motivated by (0..*) User Requirement Artifact


HCIDO::Wireframe


Wireframe


Specializes:

HCIDO::HCI Design Specification

SysSwO::Document

Definition:

A HCI Design Specification that is a Document outlining the basic structure of the interactive system’s user interface (e.g., how elements are visually organized on the screen) in a low fidelity sketch, which does not address specific details such as colors and typography.

Relations: