SEON: Networked Ontology Specification

Design Process Ontology (DPO)

1. Ontology Description

The Design Process Ontology (DPO) aims at representing the activities, artifacts and stakeholders involved in the software Design Process. DPO is in the core of the technical processes in software development, thus it reuses some concepts from other SEON networked ontologies, as well provides some concepts for reusing.

2. Related Ontologies

Networked ontologies used by DPO:

Ontology Relation Integration Level
SPO - Software Process OntologyAll DPO concepts extend concepts from SPO.High
RSRO - Reference Software Requirements OntologyDPO reuses an artifact from RDPO.Low

3. Ontology Models

Figure 1 presents the conceptual model of the DPO.

Figure 1. DPO conceptual model.

The Design Process is a Process with the purpose of defining the architecture, elements, interfaces, and other characteristics of a software, aiming at its implementation.
Some notions are important for this process. Software Architecture is a model describing the fundamental structures of a software. It is composed of Architectural Elements, which can be a Component, describing a software module, or a Connector, connecting two or more components. Architectural Elements have Interfaces, which can be internal or external. The Design is a refinement process involving several design choices. It starts defining an architecture and follows by detailing each element to the extent it can be implemented.
The Design Process is composed of four main Activities. (1) Architectural Design makes the high-level design choices, defining a Software Architecture and involved elements. Its three sub-activities are Architecture Development, for producing the architecture and specifying its components and connectors; Interface High-level Design, for specifying the interfaces between components and with external elements (users or other systems); and Data High-level Design, for establishing the high-level choices regarding the software data. (2) Detailed Design refines a preliminary software design to the extent that it is sufficiently complete to be implemented. It has four sub-activities: Component Design, for refining each architectural component; Component Interface Design, for detailing each software interface; User Interface Design, specifically for detailing the user interfaces; and Data Design, for producing a detailed Data Model for data storage and management. (3) Design Documentation registers the architectural and detailed design choices made, producing a Design Document. (4) Finally, Design Evaluation evaluates a Design Document, registering the identified issues.
The process has two main Stakeholders, the Software Architect, responsible for making the high-level design choices, and establishing a software architecture; and the Designer, responsible for making the detailed design choices.

4. Concepts Definition

The following table shows the definitions for DPO concepts.

Concept Definition
Architectural Component Architectural Element describing a software module as part of an Architecture.
Architectural Connector Architectural Element connecting two or more Components in an Architecture.
Architectural Design Activity for making the high-level design choices, defining the Software Architecture and involved elements.
Architectural Element Model Element referring to an Architectural Component or Connector, and its Interfaces.
Architecture Development Activity aiming to produce the Software Architecture and specifying its Architectural Components and Connectors.
Component Design Activity for refining each Architectural Component of a software.
Component Interface Design Activity for refining each Interface Specification of a software.
Data Definitions Information Item describing the high-level choices of how the software will manage data.
Data Design Activity for producing a detailed Data Model for data storage and management.
Data High-level Design Activity for establish the high-level choices regarding the software data.
Ex.: data management mechanisms, data distribution.
Data Model Model containing the physical and logical decisions on how to manage and storage the software data.
Ex.: a database schema.
Design Document Document specifying the design of a software, by depicting the software architecture, components, interfaces and data models, as well as other information regarding the design choices and decisions.
Design Documentation Activity for registering the architectural and detailed design choices and decisions, producing a Design Document.
Design Evaluation Activity for evaluating a Design Document, registering the identified issues.
Design Evaluation Document Document registering the issues identified in a Design Document evaluation.
Design Process Process for defining and specifying a solution to be implemented for a software product, considering the requirements for it. It is a refinement process starting with the software architecture, and going down to the design of its elements, interfaces, and other characteristics of a software, until achieving the design of implementation units.
Designer Stakeholder responsible for making the Detailed Design choices for a software.
Detailed Design Activity for refining a preliminary software design to the extent that it is sufficiently complete to be implemented. [ISO/IEC/IEEE 24765]
Interface High-level Design Activity for specifying the Interfaces between Architectural Components and with external elements (users or other systems).
Interface Specification Information Item describing an internal or external interface of a software architecture.
Software Architect Stakeholder responsible for designing the Software Architecture.
Software Architecture Model describing the fundamental structures of a software, including its components, how they are connected, and its internal and external interfaces.
User Interface Design Activity for specifying the User Interfaces in detail.
User Interface Specification Interface Specification focusing on the human-computer interaction.

Detailed Concepts


<<subkind>>
Architectural Component

DPO::Architectural Component
Specializes DPO::Architectural Element

Architectural Element describing a software module as part of an Architecture.


Relations:
Architectural Component (0..1) <>-- (0..*) Architectural Component
Component Design changes Architectural Component
Architectural Connector (1..*) conects (2..*) Architectural Component




<<subkind>>
Architectural Connector

DPO::Architectural Connector
Specializes DPO::Architectural Element

Architectural Element connecting two or more Components in an Architecture.


Relations:
Architectural Connector (1..*) conects (2..*) Architectural Component




<<event>>
Architectural Design

DPO::Architectural Design
Specializes SPO::Performed Composite Activity

Activity for making the high-level design choices, defining the Software Architecture and involved elements.


Relations:
Architectural Design uses Requirements Document
Architectural Design <>-- Architecture Development
Architectural Design <>-- Data High-level Design
Architectural Design <>-- Interface High-level Design
Design Process <>-- Architectural Design
Software Architect is in charge of Architectural Design




<<subkind>>
Architectural Element

DPO::Architectural Element
Specializes

Model Element referring to an Architectural Component or Connector, and its Interfaces.


Relations:
Architectural Element (1..1) has (1..*) Interface Specification
Software Architecture (1..1) <>-- (2..*) Architectural Element




<<event>>
Architecture Development

DPO::Architecture Development
Specializes SPO::Performed Composite Activity, SPO::Performed Simple Activity

Activity aiming to produce the Software Architecture and specifying its Architectural Components and Connectors.


Relations:
Architecture Development creates Software Architecture
Architectural Design <>-- Architecture Development




<<event>>
Component Design

DPO::Component Design
Specializes SPO::Performed Simple Activity

Activity for refining each Architectural Component of a software.


Relations:
Component Design changes Architectural Component
Detailed Design <>-- Component Design




<<event>>
Component Interface Design

DPO::Component Interface Design
Specializes SPO::Performed Simple Activity

Activity for refining each Interface Specification of a software.


Relations:
Component Interface Design changes Interface Specification
Detailed Design <>-- Component Interface Design




<<subkind>>
Data Definitions

DPO::Data Definitions
Specializes SPO::Information Item

Information Item describing the high-level choices of how the software will manage data.


Relations:
Data Design uses Data Definitions
Data High-level Design creates Data Definitions




<<event>>
Data Design

DPO::Data Design
Specializes SPO::Performed Simple Activity

Activity for producing a detailed Data Model for data storage and management.


Relations:
Data Design creates Data Model
Data Design uses Data Definitions
Detailed Design <>-- Data Design




<<event>>
Data High-level Design

DPO::Data High-level Design
Specializes SPO::Performed Simple Activity

Activity for establish the high-level choices regarding the software data.
Ex.: data management mechanisms, data distribution.

Relations:
Data High-level Design creates Data Definitions
Architectural Design <>-- Data High-level Design




<<subkind>>
Data Model

DPO::Data Model
Specializes SPO::Model

Model containing the physical and logical decisions on how to manage and storage the software data.
Ex.: a database schema.

Relations:
Data Design creates Data Model
Design Document depicts Data Model




<<subkind>>
Design Document

DPO::Design Document
Specializes SPO::Composite Artifact, SPO::Document

Document specifying the design of a software, by depicting the software architecture, components, interfaces and data models, as well as other information regarding the design choices and decisions.


Relations:
Design Document depicts Software Architecture
Design Document depicts User Interface Specification
Design Document depicts Data Model
Coding uses Design Document
Design Evaluation uses Design Document
Code Review uses Design Document
Design Documentation creates Design Document




<<event>>
Design Documentation

DPO::Design Documentation
Specializes SPO::Performed Composite Activity

Activity for registering the architectural and detailed design choices and decisions, producing a Design Document.


Relations:
Design Documentation creates Design Document
Designer participates in Design Documentation
Design Process <>-- Design Documentation
Software Architect participates in Design Documentation




<<event>>
Design Evaluation

DPO::Design Evaluation
Specializes SPO::Performed Composite Activity

Activity for evaluating a Design Document, registering the identified issues.


Relations:
Design Evaluation creates Design Evaluation Document
Design Evaluation uses Design Document
Design Evaluation uses Requirements Document
Designer participates in Design Evaluation
Design Process <>-- Design Evaluation
Software Architect participates in Design Evaluation




<<subkind>>
Design Evaluation Document

DPO::Design Evaluation Document
Specializes SPO::Document

Document registering the issues identified in a Design Document evaluation.


Relations:
Design Evaluation creates Design Evaluation Document




<<event>>
Design Process

DPO::Design Process
Specializes SPO::Performed Specific Process

Process for defining and specifying a solution to be implemented for a software product, considering the requirements for it. It is a refinement process starting with the software architecture, and going down to the design of its elements, interfaces, and other characteristics of a software, until achieving the design of implementation units.


Relations:
Design Process <>-- Architectural Design
Design Process <>-- Detailed Design
Design Process <>-- Design Documentation
Design Process <>-- Design Evaluation




<<role>>
Designer

DPO::Designer
Specializes SPO::Stakeholder

Stakeholder responsible for making the Detailed Design choices for a software.


Relations:
Designer is in charge of Detailed Design
Designer participates in Design Documentation
Designer participates in Design Evaluation




<<event>>
Detailed Design

DPO::Detailed Design
Specializes SPO::Performed Composite Activity

Activity for refining a preliminary software design to the extent that it is sufficiently complete to be implemented. [ISO/IEC/IEEE 24765]


Relations:
Detailed Design <>-- Component Design
Detailed Design <>-- Component Interface Design
Detailed Design <>-- Data Design
Detailed Design <>-- User Interface Design
Detailed Design uses Requirements Document
Detailed Design uses Software Architecture
Designer is in charge of Detailed Design
Design Process <>-- Detailed Design




<<event>>
Interface High-level Design

DPO::Interface High-level Design
Specializes SPO::Performed Simple Activity

Activity for specifying the Interfaces between Architectural Components and with external elements (users or other systems).


Relations:
Interface High-level Design creates Interface Specification
Architectural Design <>-- Interface High-level Design




<<subkind>>
Interface Specification

DPO::Interface Specification
Specializes SPO::Information Item

Information Item describing an internal or external interface of a software architecture.


Relations:
Component Interface Design changes Interface Specification
Architectural Element (1..1) has (1..*) Interface Specification
Interface High-level Design creates Interface Specification




<<role>>
Software Architect

DPO::Software Architect
Specializes SPO::Stakeholder

Stakeholder responsible for designing the Software Architecture.


Relations:
Software Architect is in charge of Architectural Design
Software Architect participates in Design Documentation
Software Architect participates in Design Evaluation




<<subkind>>
Software Architecture

DPO::Software Architecture
Specializes SPO::Model

Model describing the fundamental structures of a software, including its components, how they are connected, and its internal and external interfaces.


Relations:
Software Architecture (1..1) <>-- (2..*) Architectural Element
Detailed Design uses Software Architecture
Design Document depicts Software Architecture
Architecture Development creates Software Architecture




<<event>>
User Interface Design

DPO::User Interface Design
Specializes SPO::Performed Simple Activity

Activity for specifying the User Interfaces in detail.


Relations:
User Interface Design creates User Interface Specification
Detailed Design <>-- User Interface Design




<<subkind>>
User Interface Specification

DPO::User Interface Specification
Specializes DPO::Interface Specification

Interface Specification focusing on the human-computer interaction.


Relations:
User Interface Design creates User Interface Specification
Design Document depicts User Interface Specification





Design Process Ontology (DPO)
Mon Sep 25 21:34:14 BRT 2017