The System and Software Ontology (SysSwO)

core ontology from SEON

SysSwO published paper

1. Ontology Description

System and Software Ontology


2. Related Ontologies

Networked ontologies used by SysSwO:


3. Ontology Models

Figure 1 presents the packages of the SysSwO view HCIO.

Figure 1. SysSwO view HCIO.

SysSwO is a core reference ontology (from SEON) about the nature of system and software, including, software artifacts, software constitution, software execution, computer system and hardware equipment.

Computer System is an Object combining hardware and software. Concerning hardware, a Computer System is composed of a set of Computer Machines. Computer Machine is a Hardware Equipment which other Hardware Equipment connect to it. Hardware Equipment is a physical Object used for running software programs or to support some software process activity (e.g., a printer, a router, a mouse, a keyboard).


Regarding software, a Computer System has a set of copies of software systems that are installed and loaded in the Computer Machines that comprise the Computer System. A copy of a software system installed and loaded in a Computer Machine is said a Loaded Software System Copy and it is a Disposition inhering in the Computer Machine where it is loaded. A Loaded Software System Copy is the materialization of a Software System, which is a subtype of Software Item. A Software Item, in turn, is a piece of software produced during the software development process, not considered a complete software product (e.g., a program).

A Software System is constituted of Programs (also a subtype of Software Item). Analogously to a Software System, to run a Program, one must have a copy of the program loaded in a Computer Machine (Loaded Program Copy) and execute it. Program Copy Execution is then an Event that brings about a particular Situation (the post-state of the event termed as a Computing Resulting State) resulting from the Program Copy Execution. A Computing Resulting State (Situation) can trigger other Program Copy Execution (Event). The Program Copy Execution (pce1) that brought about a Computing Resulting State that triggered a second Program Copy Execution (pce2) is said to directly cause it (pce1 directly causes pce2).

Finally, a Computer System can be composed of others Computer Systems. In this case, it is said a Complex Computer System.


3.1. Computer System

Figure 2 presents the conceptual model of the Computer System subontology.

Figure 2. Computer System conceptual model.


3.2. Hw Equipment

Figure 3 presents the conceptual model of the Hw Equipment subontology.

Figure 3. Hw Equipment conceptual model.


3.3. Program Execution

Figure 4 presents the conceptual model of the Program Execution subontology.

Figure 4. Program Execution conceptual model.

A Program is defined as a Software Item, a piece of software, produced during the software process, not considered a complete Software Product, but which aims at producing a certain result through execution on a computer, in a particular way, given by the Program Specification. In other words, a Program intends to implement a Program Specification, that intends to satisfy a set of Requirement Artifacts. Thus, we can say that there is a relation between Program and Requirement Artifact that is derived from the existing relation between Program Specification and Requirement Artifact.

A Loaded Program Copy is the materialization of a Program, inhering in a Machine. The Loaded Program Copy is a complex Disposition that is constituted by one or more Software Functions, which are, in turn, instances of Software Function Universals. When the software development process is accomplished correctly, the Software Functions that constitute the (loaded) program copy are instances of the exact Software Function Universals described by the Program Specification and successfully implemented by the Program.

Program Copy Execution is an Event representing the execution of the Loaded Program Copy running in a Machine, i.e., the Program Copy Execution is the event of the physical manifestation of the dispositions, represented as the complex disposition Loaded Program Copy, that inhere in the Machine. In this context, the Machine participates in the Program Copy Execution playing the role of Controller.

A Program Copy Execution, as an event, brings about a particular situation, said an Observable State. An Observable State is a situation resulting from the execution of a program copy.





3.4. Sw Artifacts

The Artifact Ontology aims at establishing a common conceptualization regarding Software Artifacts, including software products and related components.
Artifacts are objects consumed or produced during the software process. They can present different nature and composition. Possible types of Artifacts are (not limited to): Software Product (e.g. Eclipse IDE), Software Item (e.g. a database schema), Information Item (e.g. a bug reported), Model (e.g. a UML class model) and Document (e.g. a requirements specification). Documents can describe other Artifacts, as it is the case of a Design Specification describing a Software Architecture. The concepts Artifact Type, Document Type and Software Product Type define the possible specializations of Artifact, Software Product and Document (respectively).
An Artifact can be composite or simple. A Composite Artifact is composed of two or more other Artifacts (e.g. a Project Plan composed of artifacts as a WBS diagram and a Risk Plan). A Simple Artifact is not decomposable. Artifacts can also depend on other Artifacts to be produced or updated, such as a Test Case depending on the Code it was designed to test.

Figure 5 presents the conceptual model of the Sw Artifacts subontology.

Figure 5. Sw Artifacts conceptual model.

In the context of the software domain, Artifacts are objects intentionally made to serve a given purpose in the context of a Software Project or Organization. They can be composed of other artifacts (Composite Artifact) or not (Simple Artifact). An artifact is an instance of an Artifact Type (a second order type). Artifact Type partitions the generalization set of Artifacts according to their nature, giving rise to a taxonomy of artifacts. More specific taxonomies can be established for specific types of artifacts, such as documents (established by instances of Document Type) and Software Product (Software Product Type), among others.

Figure 6 presents the packages of the Sw Constituition.

Figure 6. Sw Constituition.

The System and Software Ontology (SysSwO) captures that software products have a complex artifactual nature, being constituted of software artifacts of different nature, including software systems, programs and code.


4. Concepts Definition

The following table shows the definitions for SysSwO concepts.

Concept Definition

Atomic Sw Artifact

Artifact that is not decomposed into other Artifacts.

Code

Software Item representing a set of computer instructions and data definitions expressed in a programming language or in a form output by an assembler, compiler, or other translator (SEVOCAB).

Complex Computer System

Complex Sw Artifact

Artifact composed of other Artifacts.

Computer Machine

Hardware Equipment able to run programs, processing, transforming and storing data_____________Computer Machine is a hardware equipament able to run programs, processing, transforming and storing data and information.Definição ANTIGA: Machine is a hardware equipament able to run programs.

Computer System

System containing one or more Computer Machines, and other Hardware Equipments connected to them, and associated software systems that are installed/loaded in these Machines (adapted from ISO/IEC/IEEE 24765:2017).

Computing Resulting State

Observable State is a situation resulting from the execution of a program copy. It involves qualities and quality values (qualia) of the Machine in which the Loaded Program Copy inheres, as well as of entities residing in that Machine (including the Loaded Program Copy itself).

Controller

A Machine where a Loaded Program Copy is running (Program Copy Execution) plays the role of Controller.

Document

Any written or pictorial, uniquely identified, information related to the software development, usually presented in a predefined format.
E.g.: a Requirements Document, a specification, a report.

Document Type

Artifact Type which is the powertype of Document, classifying its specializations.
E.g.: Requirements Document, Design Specification, Project Plan.

Hardware Equipment

DEFINIÇÃO NOVA: Physical Object used to process, transform, store, display or transmit information or dataDEFINIÇÃO ANTIGA: Physical Object used for running software programs or to support some related action.
E.g.: Computer Dell I7, Laser Printer HP, Smartphone Galaxy 7, Router Linksys Wi-fi.

Hardware Type

Object Kind which is the powertype of Hardware Equipment, classifying its specializations.
E.g.: Computer, Printer, Router, Keyboard.

Information Item

Relevant information for human use, produced or used by Performed Activity.
E.g.: a documented requirement, a bug reported, an agreement e-mail, a component description.

Loaded Program Copy

Loaded Program Copy is the materialization of a Program, inhering in a Computer Machine.
E.g.: a copy of a program loaded in primary memory of my computer.

Loaded Software System Copy

Loaded Software System Copy is the materialization of a Software System, inhering in a Computer Machine.
E.g.: a copy of a software system loaded in the primary memory of my computer.

Machine Code

Computer instructions and data definitions expressed in a form output by an assembler, compiler, or other translator, which can be recognized by the processing unit of a computer machine.

Model

A representation (abstraction) of a process or system from a particular perspective.
E.g.: a use case model, a class model, a component model.

Program

Software Item which aims at producing a certain result through execution on a computer, in a particular way, given by the Program Specification. A Program is constituted by code, but it is not identical to code. Code can be changed without altering the identity of its program, which is anchored to the program's essential property: its intended specification (Program Specification).

Program Copy Execution

Program Copy Execution is an Event representing the execution of the Loaded Program Copy running in a Machine. In other words, the Program Copy Execution is the event of the physical manifestation of the dispositions (represented as the complex disposition Loaded Program Copy) that inhere in the Machine.

Program Specification

A document that describes the purpose (structure and functions) of a program in sufficient detail to permit coding and to facilitate maintenance.

Programming Language

A language used to express computer programs.

Software Artifact

Object intentionally made to serve a given purpose in the context of a software Project or Organization.
E.g.: a document, a model, a library, an e-mail, a bug.

Software Artifact Type

Object Kind which is the powertype of Artifact, classifying its specializations.
E.g.: Document, Model, Software Product, Information Item, Software Item.

Software Function

Software Functions are functional dispositions that constitute the complex disposition Loaded Program Copy. Each Software Function is an instance of a Software Function Universal. When the software development process is accomplished correctly, the Software Functions that constitute the Loaded Program Copy are instances of the exact Software Function Universals described by the Program Specification and successfully implemented by the Program.

Software Item

Piece of software, produced during the software process, not considered a complete Software Product, but an intermediary result.
E.g.: a component, database schema, a script.

Software Product

One or more computer programs together with any accompanying auxiliary items, such as documentation, delivered under a single name, ready for use.
E.g.: Astah modeling tool, Microsoft Word, Eclipse IDE.

Software Product Type

Artifact Type which is the powertype of Software Product, classifying its specializations.
E.g.: Modeling Tool, Text Editor, IDE, Compiler.

Software System

Software Item that aims at satisfying a specification (System Specification), concerning a desired change in a data structure inside a computer, abstracting away from the behavior.

Source Code

A well-formed sequence of computer instructions and data definitions expressed in a programming language, in a form suitable for input to an assembler, compiler,or other translator.

System Specification

SysSwO concepts definition.

5. Detailed Concepts

System and Software Ontology (SysSwO) detailed concepts.


SysSwO::Atomic Sw Artifact


<<category>>
Atomic Sw Artifact


Specializes:

SysSwO::Software Artifact

Definition:

Artifact that is not decomposed into other Artifacts.

Relations:


SysSwO::Code


<<subkind>>
Code


Specializes:

SysSwO::Software Item

Definition:

Software Item representing a set of computer instructions and data definitions expressed in a programming language or in a form output by an assembler, compiler, or other translator (SEVOCAB).

Relations:

Code (0..*) implements (0..1) Program Specification
Code Documentation changes Code
Code Development creates Code
Program (0..1) constituted of (1..*) Code
Code Review uses Code


SysSwO::Complex Computer System


Complex Computer System


Specializes:

SysSwO::Computer System

Definition:

Relations:

Complex Computer System (0..*) <>-- (2..*) Computer System


SysSwO::Complex Sw Artifact


<<category>>
Complex Sw Artifact


Specializes:

SysSwO::Software Artifact

Definition:

Artifact composed of other Artifacts.

Relations:

Complex Sw Artifact (0..*) <>-- (2..*) Software Artifact <<componentOf>>


SysSwO::Computer Machine


Computer Machine


Specializes:

SysSwO::Hardware Equipment

Definition:

Hardware Equipment able to run programs, processing, transforming and storing data_____________Computer Machine is a hardware equipament able to run programs, processing, transforming and storing data and information.Definição ANTIGA: Machine is a hardware equipament able to run programs.

Relations:

Computer Machine (0..*) connected to (0..*) Hardware Equipment
Computer System (0..*) <>-- (1..*) Computer Machine
Loaded Software System Copy (0..*) inheres in (1..1) Computer Machine
Loaded Program Copy (0..*) inheres in (1..1) Computer Machine


SysSwO::Computer System


Computer System


Specializes:

UFO::Object

Definition:

System containing one or more Computer Machines, and other Hardware Equipments connected to them, and associated software systems that are installed/loaded in these Machines (adapted from ISO/IEC/IEEE 24765:2017).

Relations:

Computer System (0..*) <>-- (1..*) Computer Machine
Computer System (0..*) <>-- (1..*) Hardware Equipment
Computer System (1..*) has (1..*) Loaded Software System Copy
Complex Computer System (0..*) <>-- (2..*) Computer System


SysSwO::Computing Resulting State


Computing Resulting State


Specializes:

UFO::Situation

Definition:

Observable State is a situation resulting from the execution of a program copy. It involves qualities and quality values (qualia) of the Machine in which the Loaded Program Copy inheres, as well as of entities residing in that Machine (including the Loaded Program Copy itself).

Relations:

Computing Resulting State (0..1) triggers (0..*) Program Copy Execution
Computing Resulting State (0..*) satisfies (0..*) Mental Computing Resulting State
User Interface shows Computing Resulting State
Program Copy Execution (1..1) brings about (1..1) Computing Resulting State


SysSwO::Controller


Controller


Specializes:

SysSwO::Computer Machine

Definition:

A Machine where a Loaded Program Copy is running (Program Copy Execution) plays the role of Controller.

Relations:

Controller (1..1) participates in (1..*) Program Copy Execution


SysSwO::Document


<<kind>>
Document


Specializes:

SysSwO::Software Artifact

Definition:

Any written or pictorial, uniquely identified, information related to the software development, usually presented in a predefined format.
Example: a Requirements Document, a specification, a report.

Relations:

Document (0..*) describes (0..*) Software Artifact
Document (0..*) instance of (1..1) Document Type


SysSwO::Document Type


<<2ndOT>>
Document Type


Specializes:

SysSwO::Software Artifact Type

Definition:

Artifact Type which is the powertype of Document, classifying its specializations.
Example: Requirements Document, Design Specification, Project Plan.

Relations:

Document Template (0..*) applies to (1..1) Document Type
Document (0..*) instance of (1..1) Document Type


SysSwO::Hardware Equipment


<<kind>>
Hardware Equipment


Specializes:

UFO::Object

Definition:

DEFINIÇÃO NOVA: Physical Object used to process, transform, store, display or transmit information or dataDEFINIÇÃO ANTIGA: Physical Object used for running software programs or to support some related action.
Example: Computer Dell I7, Laser Printer HP, Smartphone Galaxy 7, Router Linksys Wi-fi.

Relations:

Hardware Equipment (0..*) instance of (1..1) Hardware Type
Computer System (0..*) <>-- (1..*) Hardware Equipment
Computer Machine (0..*) connected to (0..*) Hardware Equipment
User Interface <>-- Hardware Equipment
Interactive Computer System <>-- Hardware Equipment


SysSwO::Hardware Type


<<2ndOT>>
Hardware Type


Specializes:

UFO::Object Kind

Definition:

Object Kind which is the powertype of Hardware Equipment, classifying its specializations.
Example: Computer, Printer, Router, Keyboard.

Relations:

Intended Activity (0..*) requires (0..*) Hardware Type
Hardware Equipment (0..*) instance of (1..1) Hardware Type
Standard Activity (0..*) requires (0..*) Hardware Type


SysSwO::Information Item


<<kind>>
Information Item


Specializes:

SysSwO::Software Artifact

Definition:

Relevant information for human use, produced or used by Performed Activity.
Example: a documented requirement, a bug reported, an agreement e-mail, a component description.

Relations:


SysSwO::Loaded Program Copy


Loaded Program Copy


Specializes:

UFO::Disposition

Definition:

Loaded Program Copy is the materialization of a Program, inhering in a Computer Machine.
Example: a copy of a program loaded in primary memory of my computer.

Relations:

Loaded Program Copy (0..*) materialization of (1..1) Program
Loaded Program Copy (1..1) constituted by (1..*) Software Function
Loaded Program Copy (0..*) inheres in (1..1) Computer Machine
Loaded Program Copy (1..*) handles (0..1) User Interface
Loaded Software System Copy (1..1) includes (1..*) Loaded Program Copy
Program Copy Execution (0..*) execution of (1..1) Loaded Program Copy


SysSwO::Loaded Software System Copy


Loaded Software System Copy


Specializes:

UFO::Disposition

Definition:

Loaded Software System Copy is the materialization of a Software System, inhering in a Computer Machine.
Example: a copy of a software system loaded in the primary memory of my computer.

Relations:

Loaded Software System Copy (0..*) materialization of (1..1) Software System
Loaded Software System Copy (0..*) inheres in (1..1) Computer Machine
Loaded Software System Copy (1..1) includes (1..*) Loaded Program Copy
Computer System (1..*) has (1..*) Loaded Software System Copy


SysSwO::Machine Code


<<subkind>>
Machine Code


Specializes:

SysSwO::Code

Definition:

Computer instructions and data definitions expressed in a form output by an assembler, compiler, or other translator, which can be recognized by the processing unit of a computer machine.

Relations:

Machine Code (0..*) generated from (1..1) Source Code


SysSwO::Model


<<kind>>
Model


Specializes:

SysSwO::Software Artifact

Definition:

A representation (abstraction) of a process or system from a particular perspective.
Example: a use case model, a class model, a component model.

Relations:


SysSwO::Program


<<subkind>>
Program


Specializes:

SysSwO::Software Item

Definition:

Software Item which aims at producing a certain result through execution on a computer, in a particular way, given by the Program Specification. A Program is constituted by code, but it is not identical to code. Code can be changed without altering the identity of its program, which is anchored to the program's essential property: its intended specification (Program Specification).

Relations:

Program (0..1) constituted of (1..*) Code
Program (0..1) intends to implement (1..1) Program Specification
Program (0..*) implements (1..*) Software Function Universal
Program (0..*) \intends to satisfy (1..*) Requirement Artifact
Program (0..*) implements (0..*) Quality Characteristic
Software System (0..*) constituted of (1..*) Program
Loaded Program Copy (0..*) materialization of (1..1) Program


SysSwO::Program Copy Execution


Program Copy Execution


Specializes:

UFO::Event (Perdurant)

Definition:

Program Copy Execution is an Event representing the execution of the Loaded Program Copy running in a Machine. In other words, the Program Copy Execution is the event of the physical manifestation of the dispositions (represented as the complex disposition Loaded Program Copy) that inhere in the Machine.

Relations:

Program Copy Execution (0..*) execution of (1..1) Loaded Program Copy
Program Copy Execution (1..1) brings about (1..1) Computing Resulting State
Program Copy Execution (1..1) /directly causes (0..*) User Interpretation
Program Copy Execution (0..*) /directly causes (0..*) Program Copy Execution
Computing Resulting State (0..1) triggers (0..*) Program Copy Execution
User Initiated Participation (0..1) /directly causes (0..*) Program Copy Execution
User Input Resulting State (0..1) triggers (0..*) Program Copy Execution
Controller (1..1) participates in (1..*) Program Copy Execution
Interactive Computer System Participation (1..1) <>-- (0..*) Program Copy Execution


SysSwO::Program Specification


<<subkind>>
Program Specification


Specializes:

SysSwO::Document

Definition:

A document that describes the purpose (structure and functions) of a program in sufficient detail to permit coding and to facilitate maintenance.

Relations:

Program Specification (0..*) intends to satisfy (0..*) System Specification
Program Specification (0..*) intends to satisfy (1..*) Requirement Artifact
Program Specification (0..*) describes (1..*) Software Function Universal
Program (0..1) intends to implement (1..1) Program Specification
Code (0..*) implements (0..1) Program Specification


SysSwO::Programming Language


<<kind>>
Programming Language


Specializes:

UFO::Social Object

Definition:

A language used to express computer programs.

Relations:

Source Code (0..*) written in (1..*) Programming Language


SysSwO::Software Artifact


<<category>>
Software Artifact


Specializes:

RSMO::Measurable Software-Related Entity

UFO::Object

Definition:

Object intentionally made to serve a given purpose in the context of a software Project or Organization.
Example: a document, a model, a library, an e-mail, a bug.

Relations:

Software Artifact (0..*) instance of (1..1) Software Artifact Type
Software Artifact (0..*) depends on Software Artifact <<material>>
Artifact Participation (0..*) participation of (1..1) Software Artifact
Document (0..*) describes (0..*) Software Artifact
Complex Sw Artifact (0..*) <>-- (2..*) Software Artifact <<componentOf>>
Performed Activity (1..1) creates (0..*) Software Artifact <<material>>
Performed Activity (0..*) changes (0..*) Software Artifact
Performed Activity (0..*) uses (0..*) Software Artifact
Stakeholder (0..*) responsible for (0..*) Software Artifact <<material>>


SysSwO::Software Artifact Type


<<2ndOT>>
Software Artifact Type


Specializes:

UFO::Object Kind

Definition:

Object Kind which is the powertype of Artifact, classifying its specializations.
Example: Document, Model, Software Product, Information Item, Software Item.

Relations:

Intended Activity (0..*) creates (0..*) Software Artifact Type
Intended Activity (0..*) changes (0..*) Software Artifact Type
Intended Activity (0..*) uses (0..*) Software Artifact Type
Software Artifact (0..*) instance of (1..1) Software Artifact Type
Standard Activity (0..*) uses (0..*) Software Artifact Type
Standard Activity (0..*) changes (0..*) Software Artifact Type
Standard Activity (0..*) creates (0..*) Software Artifact Type


SysSwO::Software Function


Software Function


Specializes:

UFO::Function

Definition:

Software Functions are functional dispositions that constitute the complex disposition Loaded Program Copy. Each Software Function is an instance of a Software Function Universal. When the software development process is accomplished correctly, the Software Functions that constitute the Loaded Program Copy are instances of the exact Software Function Universals described by the Program Specification and successfully implemented by the Program.

Relations:

Software Function (0..*) instance of (1..*) Software Function Universal
Loaded Program Copy (1..1) constituted by (1..*) Software Function


SysSwO::Software Item


<<kind>>
Software Item


Specializes:

SysSwO::Software Artifact

UFO::Object

Definition:

Piece of software, produced during the software process, not considered a complete Software Product, but an intermediary result.
Example: a component, database schema, a script.

Relations:


SysSwO::Software Product


<<kind>>
Software Product


Specializes:

SysSwO::Software Artifact

SysSwO::Complex Sw Artifact

Definition:

One or more computer programs together with any accompanying auxiliary items, such as documentation, delivered under a single name, ready for use.
Example: Astah modeling tool, Microsoft Word, Eclipse IDE.

Relations:

Software Product (0..*) instance of (1..1) Software Product Type
Software Product (0..1) constituted of (1..*) Software System
User Interface <>-- Software Product


SysSwO::Software Product Type


<<2ndOT>>
Software Product Type


Specializes:

SysSwO::Software Artifact Type

Definition:

Artifact Type which is the powertype of Software Product, classifying its specializations.
Example: Modeling Tool, Text Editor, IDE, Compiler.

Relations:

Intended Activity (0..*) requires (0..*) Software Product Type
Software Product (0..*) instance of (1..1) Software Product Type
Standard Activity (0..*) requires (0..*) Software Product Type


SysSwO::Software System


<<subkind>>
Software System


Specializes:

SysSwO::Software Item

Definition:

Software Item that aims at satisfying a specification (System Specification), concerning a desired change in a data structure inside a computer, abstracting away from the behavior.

Relations:

Software System (0..*) constituted of (1..*) Program
Software System (0..1) intends to implement (1..1) System Specification
Software Product (0..1) constituted of (1..*) Software System
Loaded Software System Copy (0..*) materialization of (1..1) Software System


SysSwO::Source Code


<<subkind>>
Source Code


Specializes:

SysSwO::Code

Definition:

A well-formed sequence of computer instructions and data definitions expressed in a programming language, in a form suitable for input to an assembler, compiler,or other translator.

Relations:

Source Code (0..*) written in (1..*) Programming Language
Machine Code (0..*) generated from (1..1) Source Code


SysSwO::System Specification


<<subkind>>
System Specification


Specializes:

SysSwO::Document

Definition:

Relations:

Software System (0..1) intends to implement (1..1) System Specification
Program Specification (0..*) intends to satisfy (0..*) System Specification