SEON: Networked Ontology Specification

Runtime Requirements Ontology (RRO)

1. Ontology Description

The Runtime Requirements Ontology (RRO) focuses on the notions related to the use of Requirements at Runtime. The Program Execution sub-ontology focuses on capturing the ontological nature of program execution, which is the basis for the use of requirements at runtime. The Runtime Requirements sub-ontology addresses the use of Runtime Requirements Artifacts by programs in execution.

2. Related Ontologies

Networked ontologies used by RRO:

Ontology Relation Integration Level
RSRO - Reference Software Requirements Ontology
SwO - Software Ontology

3. Ontology Models

3.1. Program Execution

The Program Execution subontology focuses on capturing the ontological nature of program execution, which is the basis for the use of requirements at runtime.

Figure 1 presents the conceptual model of the RRO - Program Execution subontology.

Figure 1. RRO - 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.2. Runtime Requirements

The Runtime Requirements sub-ontology addresses the use of Runtime Requirements Artifacts by programs in execution.

Figure 2 presents the conceptual model of the RRO - RTR subontology.

Figure 2. RRO - RTR conceptual model.

The first important distinction in the Runtime Requirements sub-ontology is between Runtime Requirement Artifacts, those that can be used by Program Copy Executions at runtime, from their non-runtime counterparts, named Design Time Requirement Artifacts.

Runtime Requirement Artifact is further specialized into two specific subtypes: Monitoring Runtime Requirement Artifact defines the criteria for verifying if a requirement is being satisfied or not at runtime; on the other hand, Change Runtime Requirement Artifact specifies changes on the system’s behavior, in order for the software system to keep fulfilling the goals it has been designed for.

An RRT Program is a Program that is built intending to satisfy at least one Runtime Requirement Artifact. The aforementioned distinction between runtime requirement artifacts also reflects in RRT Programs (and in the corresponding Loaded Program Copies that materialize them and in the Program Copy Executions that are executions of the latter). Thus, RRT Program is specialized in Compliance Program, representing those RRT Programs that intend to satisfy at least one Monitoring Runtime Requirement Artifact, and Adaptation Program, representing those RRT Programs that intend to satisfy at least one Change Runtime Requirement Artifact. The generalization set of RRT Program is not disjoint, since the same program can intend to satisfy, at the same time, both a Monitoring Runtime Requirement Artifact and a Change Runtime Requirement Artifact. Finally, some RRT Programs are built to act over (monitor/change) specific programs. When a Program is the target of an RRT Program, we say that it plays the role of a Target Program.
A Loaded RRT Program Copy is the materialization of an RRT Program, while an RRT Program Copy Execution is the execution of a Loaded RRT Program Copy. An RRT Program Copy Execution uses Runtime Requirement Artifacts as resources. A Compliance Program Copy Execution uses Monitoring Runtime Requirement Artifacts, and monitors Observable States produced by another Program Copy Execution, said Target Program Copy Execution. While using requirements at runtime, we are not interested in situations arising from the execution of any program, but only in those arising from the Target Program Copy Executions. For this reason, a Compliance Program Copy Execution monitors Target Execution States, i.e, the situations arising from the Target Program Copy Execution. The Compliance Program Copy Execution monitors the Target Execution States to verify if the runtime requirements comply with the criteria specified in the Monitoring Runtime Requirement Artifacts. If one or more requirements are not being fulfilled accordingly, an Adaptation Program Copy Execution can trigger changes in the the Loaded Program Copy being monitored, which is said a Loaded Target Program Copy, by using Change Runtime Requirement Artifacts. Like the RRT Program generalization set, the generalization set of RRT Program Copy Execution (and also of Loaded RRT Program Copy) is not disjoint, since the same RRT Program Copy Execution can use, at the same time, both a Monitoring Runtime Requirement Artifact and a Change Runtime Requirement Artifact.

4. Concepts Definition

The following table shows the definitions for RRO concepts.

Concept Definition
Adaptation Program An Adaptation Program is a RRT Program that intends to satisfy at least one Change Runtime Requirement Artifact.
Adaptation Program Copy Execution An Adaptation Program Copy Execution is the execution of a Loaded Adaptation Program Copy. It uses Change Runtime Requirement Artifacts as resources to triggers changes in its Loaded Target Program Copy.
Change Runtime Requirement Artifact Change Runtime Requirement Artifact specifies changes on the system's
behavior, in order for the software system to keep fulfilling the goals it has been designed for.
Compliance Program Compliance Program is a RRT Program that intends to satisfy at least one Monitoring Runtime Requirement Artifact.
Compliance Program Copy Execution A Compliance Program Copy Execution is the execution of a Loaded Compliance Program Copy. It uses Monitoring Runtime Requirement Artifacts as resources to monitor Execution States.
Controller A Machine where a Loaded Program Copy is running (Program Copy Execution) plays the role of Controller.
Design Time Requirement Artifact Design Time Requirement Artifact is a Requirement Artifact written in natural language or other format that could not be processed by a program at runtime. It is a Requirement Artifact to be used during design time.
Loaded Adaptation Program Copy Loaded Adaptation Program Copy is the materialization of an Adaptation Program.
Loaded Compliance Program Copy Loaded Compliance Program Copy is the materialization of a Compliance Program.
Loaded Program Copy Loaded Program Copy is the materialization of a Program, inhering in a Machine.
Ex.: a copy of a program loaded in primary memory of my computer.
Loaded RRT Program Copy Loaded RRT Program Copy is the materialization of a RRT Program.
Loaded Target Program Copy Loaded Target Program Copy is the materialization of a Target Program.
Machine Machine is a hardware equipament able to run programs.
Monitoring Runtime Requirement Artifact Monitoring Runtime Requirement Artifact defines the criteria for verifying if a requirement is being satisfied or not at
runtime.
Observable 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).
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.
RRT Program An RRT Program is a Program that is built intending to satisfy at least one Runtime Requirement Artifact.
RRT Program Copy Execution An RRT Program Copy Execution is the execution of a Loaded RRT Program Copy. It uses Runtime Requirement Artifacts as resources.
Runtime Requirement Artifact Runtime Requirement Artifact is a Requirement Artifact written in a computational file that could be processed by a program at runtime (RRT Program Copy Execution).
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.
Target Execution State Execution State is the Observable State resulting from the Target Program Copy Execution, which is monitored by some Compliance Program Copy Executions.
Target Program Target Program is the role a Program plays when it is the targer of a RRT Program, i.e., the RRT Program are built to act over (monitor/change) the Target Program.
Target Program Copy Execution A Target Program Copy Execution is the execution of a Loaded Target Program Copy. It brings about to an Execution State.

Detailed Concepts


Adaptation Program

RRO::Adaptation Program
Specializes RRO::RRT Program

An Adaptation Program is a RRT Program that intends to satisfy at least one Change Runtime Requirement Artifact.


Relations:
Adaptation Program (0..*) \intends to satisfy (1..*) Change Runtime Requirement Artifact
Loaded Adaptation Program Copy (0..*) materialization of (1..1) Adaptation Program




Adaptation Program Copy Execution

RRO::Adaptation Program Copy Execution
Specializes RRO::RRT Program Copy Execution

An Adaptation Program Copy Execution is the execution of a Loaded Adaptation Program Copy. It uses Change Runtime Requirement Artifacts as resources to triggers changes in its Loaded Target Program Copy.


Relations:
Adaptation Program Copy Execution (0..*) triggers changes in (1..*) Loaded Target Program Copy
Adaptation Program Copy Execution (0..*) execution of (1..1) Loaded Adaptation Program Copy
Change Runtime Requirement Artifact (1..*) used by (0..*) Adaptation Program Copy Execution




Change Runtime Requirement Artifact

RRO::Change Runtime Requirement Artifact
Specializes RRO::Runtime Requirement Artifact

Change Runtime Requirement Artifact specifies changes on the system's
behavior, in order for the software system to keep fulfilling the goals it has been designed for.


Relations:
Change Runtime Requirement Artifact (1..*) used by (0..*) Adaptation Program Copy Execution
Adaptation Program (0..*) \intends to satisfy (1..*) Change Runtime Requirement Artifact




Compliance Program

RRO::Compliance Program
Specializes RRO::RRT Program

Compliance Program is a RRT Program that intends to satisfy at least one Monitoring Runtime Requirement Artifact.


Relations:
Compliance Program (0..*) \intends to satisfy (1..*) Monitoring Runtime Requirement Artifact
Loaded Compliance Program Copy (0..*) materialization of (1..1) Compliance Program




Compliance Program Copy Execution

RRO::Compliance Program Copy Execution
Specializes RRO::RRT Program Copy Execution

A Compliance Program Copy Execution is the execution of a Loaded Compliance Program Copy. It uses Monitoring Runtime Requirement Artifacts as resources to monitor Execution States.


Relations:
Compliance Program Copy Execution (1..*) monitors (1..*) Target Execution State
Compliance Program Copy Execution (0..*) execution of (1..1) Loaded Compliance Program Copy
Monitoring Runtime Requirement Artifact (1..*) used by (0..*) Compliance Program Copy Execution




Controller

RRO::Controller
Specializes RRO::Machine

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




Design Time Requirement Artifact

RRO::Design Time Requirement Artifact
Specializes RSRO::Requirement Artifact

Design Time Requirement Artifact is a Requirement Artifact written in natural language or other format that could not be processed by a program at runtime. It is a Requirement Artifact to be used during design time.






Loaded Adaptation Program Copy

RRO::Loaded Adaptation Program Copy
Specializes RRO::Loaded RRT Program Copy

Loaded Adaptation Program Copy is the materialization of an Adaptation Program.


Relations:
Loaded Adaptation Program Copy (0..*) materialization of (1..1) Adaptation Program
Adaptation Program Copy Execution (0..*) execution of (1..1) Loaded Adaptation Program Copy




Loaded Compliance Program Copy

RRO::Loaded Compliance Program Copy
Specializes RRO::Loaded RRT Program Copy

Loaded Compliance Program Copy is the materialization of a Compliance Program.


Relations:
Loaded Compliance Program Copy (0..*) materialization of (1..1) Compliance Program
Compliance Program Copy Execution (0..*) execution of (1..1) Loaded Compliance Program Copy




Loaded Program Copy

RRO::Loaded Program Copy
Specializes UFO::Disposition

Loaded Program Copy is the materialization of a Program, inhering in a Machine.
Ex.: 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) Machine
Program Copy Execution (0..*) execution of (1..1) Loaded Program Copy




Loaded RRT Program Copy

RRO::Loaded RRT Program Copy
Specializes RRO::Loaded Program Copy

Loaded RRT Program Copy is the materialization of a RRT Program.


Relations:
Loaded RRT Program Copy (0..*) materialization of (1..1) RRT Program
RRT Program Copy Execution (0..*) execution of (1..1) Loaded RRT Program Copy




Loaded Target Program Copy

RRO::Loaded Target Program Copy
Specializes RRO::Loaded Program Copy

Loaded Target Program Copy is the materialization of a Target Program.


Relations:
Loaded Target Program Copy (0..*) materialization of (1..1) Target Program
Adaptation Program Copy Execution (0..*) triggers changes in (1..*) Loaded Target Program Copy
Target Program Copy Execution (0..*) execution of (1..1) Loaded Target Program Copy




Machine

RRO::Machine
Specializes UFO::Object

Machine is a hardware equipament able to run programs.


Relations:
Loaded Program Copy (0..*) inheres in (1..1) Machine




Monitoring Runtime Requirement Artifact

RRO::Monitoring Runtime Requirement Artifact
Specializes RRO::Runtime Requirement Artifact

Monitoring Runtime Requirement Artifact defines the criteria for verifying if a requirement is being satisfied or not at
runtime.


Relations:
Monitoring Runtime Requirement Artifact (1..*) used by (0..*) Compliance Program Copy Execution
Compliance Program (0..*) \intends to satisfy (1..*) Monitoring Runtime Requirement Artifact




Observable State

RRO::Observable State
Specializes UFO::Situation

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:
Program Copy Execution (1..1) brings about (1..1) Observable State




Program Copy Execution

RRO::Program Copy Execution
Specializes UFO::Event

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) Observable State
Controller (1..1) participates in (1..*) Program Copy Execution




RRT Program

RRO::RRT Program
Specializes SwO::Program

An RRT Program is a Program that is built intending to satisfy at least one Runtime Requirement Artifact.


Relations:
RRT Program (0..*) \intends to satisfy (1..*) Runtime Requirement Artifact
Target Program (0..*) is target of (1..*) RRT Program
Loaded RRT Program Copy (0..*) materialization of (1..1) RRT Program




RRT Program Copy Execution

RRO::RRT Program Copy Execution
Specializes RRO::Program Copy Execution

An RRT Program Copy Execution is the execution of a Loaded RRT Program Copy. It uses Runtime Requirement Artifacts as resources.


Relations:
RRT Program Copy Execution (0..*) execution of (1..1) Loaded RRT Program Copy
Runtime Requirement Artifact (1..*) used by (0..*) RRT Program Copy Execution




Runtime Requirement Artifact

RRO::Runtime Requirement Artifact
Specializes RSRO::Requirement Artifact

Runtime Requirement Artifact is a Requirement Artifact written in a computational file that could be processed by a program at runtime (RRT Program Copy Execution).


Relations:
Runtime Requirement Artifact (1..*) used by (0..*) RRT Program Copy Execution
RRT Program (0..*) \intends to satisfy (1..*) Runtime Requirement Artifact




Software Function

RRO::Software Function
Specializes UFO::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.


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




Target Execution State

RRO::Target Execution State
Specializes RRO::Observable State

Execution State is the Observable State resulting from the Target Program Copy Execution, which is monitored by some Compliance Program Copy Executions.


Relations:
Target Program Copy Execution (1..1) brings about (1..1) Target Execution State
Compliance Program Copy Execution (1..*) monitors (1..*) Target Execution State




Target Program

RRO::Target Program
Specializes SwO::Program

Target Program is the role a Program plays when it is the targer of a RRT Program, i.e., the RRT Program are built to act over (monitor/change) the Target Program.


Relations:
Target Program (0..*) is target of (1..*) RRT Program
Loaded Target Program Copy (0..*) materialization of (1..1) Target Program




Target Program Copy Execution

RRO::Target Program Copy Execution
Specializes RRO::Program Copy Execution

A Target Program Copy Execution is the execution of a Loaded Target Program Copy. It brings about to an Execution State.


Relations:
Target Program Copy Execution (1..1) brings about (1..1) Target Execution State
Target Program Copy Execution (0..*) execution of (1..1) Loaded Target Program Copy





Runtime Requirements Ontology (RRO)
Mon Sep 25 21:34:14 BRT 2017