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:
3. Ontology Models
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.
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
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
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
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
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
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
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
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
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
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
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
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
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