SEON: Networked Ontology Specification

Software Artifact Ontology (SwAO)

1. Ontology Description

The Software Artifact Ontology (SwAO) aims at establishing a common conceptualization regarding Software Artifacts, including software products and related components.
SwAO captures that software products have a complex artifactual nature, being constituted of software artifacts of different nature, including software systems, programs and code. 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 depict 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.

2. Related Ontologies

Networked ontologies used by SwAO:

Ontology Relation Integration Level
UFO - Unified Foundational OntologyThe SwO concepts are derived from UFO (mostly social entities from UFO-C).High

3. Ontology Models

Figure 1 presents the conceptual model of the Software Artifact Ontology.

Figure 1. Software Artifact Ontology 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.

4. Concepts Definition

The following table shows the definitions for SwAO concepts.

Concept Definition
Artifact Object intentionally made to serve a given purpose in the context of a software Project or Organization.
Ex.: a document, a model, a library, an e-mail, a bug.
Artifact Type Object Kind which is the powertype of Artifact, classifying its specializations.
Ex.: Document, Model, Software Product, Information Item, Software Item.
CASE Tool
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).
Composite Artifact Artifact composed of other Artifacts.
Document Any written or pictorial, uniquely identified, information related to the software development, usually presented in a predefined format.
Ex.: a Requirements Document, a specification, a report.
Document Type Artifact Type which is the powertype of Document, classifying its specializations.
Ex.: Requirements Document, Design Specification, Project Plan.
Information Item Relevant information for human use, produced or used by Performed Activity.
Ex.: a documented requirement, a bug reported, an agreement e-mail, a component description.
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.
Ex.: 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 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.
Simple Artifact Artifact that is not decomposed into other Artifacts.
Software Item Piece of software, produced during the software process, not considered a complete Software Product, but an intermediary result.
Ex.: 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.
Ex.: Astah modeling tool, Microsoft Word, Eclipse IDE.
Software Product Type Artifact Type which is the powertype of Software Product, classifying its specializations.
Ex.: 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

Detailed Concepts


<<category>>
Artifact

SwAO::Artifact
Specializes RSMO::Measurable Software-Related Entity, UFO::Object

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

Relations:
Artifact (0..*) instanceOf (1..1) Artifact Type
Artifact (0..*) depends on (0..*) Artifact <<material>>
Artifact Participation (0..*) participation of (1..1) Artifact
Document (0..*) depicts (0..*) Artifact
Stakeholder (0..*) responsible for (0..*) Artifact <<material>>
Performed Activity (0..1) creates (0..*) Artifact <<material>>
Performed Activity (0..*) changes (0..*) Artifact <<material>>
Performed Activity (0..*) uses (0..*) Artifact <<material>>
Composite Artifact (0..*) <>-- (2..*) Artifact <<componentOf>>




<<2ndOT>>
Artifact Type

SwAO::Artifact Type
Specializes UFO::Object Kind

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

Relations:
Standard Activity (0..*) uses (0..*) Artifact Type
Standard Activity (0..*) changes (0..*) Artifact Type
Standard Activity (0..*) creates (0..*) Artifact Type
Artifact (0..*) instanceOf (1..1) Artifact Type
Intended Activity (0..*) creates (0..*) Artifact Type
Intended Activity (0..*) changes (0..*) Artifact Type
Intended Activity (0..*) uses (0..*) Artifact Type




<<subkind>>
CASE Tool

SwAO::CASE Tool
Specializes SwAO::Software Product








<<subkind>>
Code

SwAO::Code
Specializes SwAO::Software Item

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 (1..1) Program Specification
Code Development creates Code
Code Review uses Code
Program (0..1) constituted of (1..*) Code
Code Documentation changes Code




<<category>>
Composite Artifact

SwAO::Composite Artifact
Specializes SwAO::Artifact

Artifact composed of other Artifacts.


Relations:
Composite Artifact (0..*) <>-- (2..*) Artifact <<componentOf>>




<<kind>>
Document

SwAO::Document
Specializes SwAO::Artifact

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

Relations:
Document (0..*) depicts (0..*) Artifact
Document (0..*) instance of (1..1) Document Type




<<2ndOT>>
Document Type

SwAO::Document Type
Specializes SwAO::Artifact Type

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

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




<<kind>>
Information Item

SwAO::Information Item
Specializes SwAO::Artifact

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





<<subkind>>
Machine Code

SwAO::Machine Code
Specializes SwAO::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.


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




<<kind>>
Model

SwAO::Model
Specializes SwAO::Artifact

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





<<subkind>>
Program

SwAO::Program
Specializes SwAO::Software Item

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
Software System (0..*) constituted of (1..*) Program
Loaded Program Copy (0..*) materialization of (1..1) Program




<<subkind>>
Program Specification

SwAO::Program Specification
Specializes SwAO::Document

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 (1..1) System Specification
Program Specification (0..*) intends to satisfy (1..*) Requirement Artifact
Program Specification (0..*) describes (1..*) Software Function Universal
Code (0..*) implements (1..1) Program Specification
Program (0..1) intends to implement (1..1) Program Specification




<<kind>>
Programming Language

SwAO::Programming Language
Specializes UFO::Social Object

A language used to express computer programs.


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




<<category>>
Simple Artifact

SwAO::Simple Artifact
Specializes SwAO::Artifact

Artifact that is not decomposed into other Artifacts.






<<kind>>
Software Item

SwAO::Software Item
Specializes SwAO::Artifact

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





<<kind>>
Software Product

SwAO::Software Product
Specializes SwAO::Composite Artifact, SwAO::Artifact

One or more computer programs together with any accompanying auxiliary items, such as documentation, delivered under a single name, ready for use.
Ex.: 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




<<2ndOT>>
Software Product Type

SwAO::Software Product Type
Specializes SwAO::Artifact Type

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

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




<<subkind>>
Software System

SwAO::Software System
Specializes SwAO::Software Item

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




<<subkind>>
Source Code

SwAO::Source Code
Specializes SwAO::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.


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




<<subkind>>
System Specification

SwAO::System Specification
Specializes SwAO::Document




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





Software Artifact Ontology (SwAO)
Tue Jun 13 19:53:57 BRT 2017