Table of Contents

Introduction

A Key Performance Parameter (KPP) is a measurable objective that quantifies how well a system meets its intended purpose. Think of it as a specific number or metric that tells you if a system is working as expected.

Overview

Key Performance Parameters (KPPs) are foundational elements within the Integrated Systems Engineering Decision Management (ISEDM) framework. They represent quantifiable metrics that can be measured and tracked throughout the system development lifecycle. KPPs are essential for evaluating system performance against mission objectives and requirements.

KPPs serve as the bridge between high-level mission objectives and specific system performance characteristics. They enable systems engineers to make data-driven decisions by providing concrete, measurable criteria for evaluating system performance.

KPPs are not just random metrics - they are carefully selected to directly support mission success and are aligned with stakeholder priorities. A well-chosen KPP should be specific, measurable, achievable, relevant, and time-bound (SMART).

Position in Knowledge Hierarchy

Broader concepts: - ISEDM (is-a)

Narrower concepts: - MoE (is-a)

Details

KPPs are defined as measurable objectives that represent critical aspects of system performance. They are distinct from other concepts in the ISEDM framework:

Concept

Relationship to KPP

MoE (Measure of Effectiveness)

KPP is a parent concept to MoE (is-a relationship)

Value Function

Sibling concept sharing parent ISEDM

Swing Weight

Sibling concept sharing parent ISEDM

KPPs are typically defined in the context of a specific mission or system. For example, in the Catapult system case study, the KPPs included:

KPP

Description

Impact Angle

Angle at which the projectile impacts the target

Flight Time

Time from launch to impact

Impact Velocity

Speed of the projectile at impact

Range

Distance traveled by the projectile

Circular Error Probability (CEP)

Measure of accuracy in hitting the target

KPPs are linked to requirements in the SysML model using specific ontology tags. This allows them to be integrated into the IoIF framework for automated analysis and decision support.

In the IoIF framework, KPPs are connected to the Assessment Flow Diagram (AFD) which defines how different analysis models interact to produce these key performance metrics. The AFD shows the flow of data from the system model through various analysis models to the KPPs.

Practical applications and examples

Catapult System Example

In the Catapult case study, KPPs were used to evaluate different design alternatives. The system was modeled using SysML with the following KPPs:

  • Impact Angle

  • Flight Time

  • Impact Velocity

  • Range

  • Circular Error Probability (CEP)

These KPPs were linked to the AFD (Assessment Flow Diagram) which showed how the system parameters flowed through different analysis models (geometry, fire simulation, error analysis) to produce the final KPP values.

The Decision Dashboard in IoIF used these KPPs to visualize trade-offs between different design alternatives. For example, a user could compare the "Range" (X-axis) against "CEP" (Y-axis) to see how increasing range might affect accuracy.

The Catapult example demonstrates how KPPs can be used to support decision-making by providing clear, quantifiable metrics for comparing different system designs.

Implementing KPPs in SysML

To implement KPPs in a SysML model, follow these steps:

  1. Create a Block Definition Diagram (BDD) for your system

  2. Add a "Key Performance Parameter" block to the model

  3. Define the specific KPPs as value properties of the block

  4. Tag the KPPs with appropriate ontology stereotypes (e.g., [kpp])

  5. Connect the KPPs to the appropriate analysis models in the AFD

Here’s a Python code example showing how to create a KPP in a SysML model using the IoIF framework:

= Define KPPs for the Catapult system
kpps = {
    "Impact Angle": {
        "unit": "degrees",
        "min": 0,
        "max": 90,
        "description": "Angle at which projectile impacts target"
    },
    "Flight Time": {
        "unit": "seconds",
        "min": 0.5,
        "max": 5.0,
        "description": "Time from launch to impact"
    },
    "Range": {
        "unit": "meters",
        "min": 10,
        "max": 1000,
        "description": "Distance traveled by projectile"
    }
}

= Add KPPs to the IoIF triplestore
for kpp_name, kpp_data in kpps.items():
    # Create a new KPP instance in the ontology
    kpp_iri = f"http://example.org/kpp/{kpp_name.replace(' ', '_')}"

    # Add properties to the KPP instance
    triplestore.add((kpp_iri, RDF.type, ISEDM.KPP))
    triplestore.add((kpp_iri, RDFS.label, Literal(kpp_name)))
    triplestore.add((kpp_iri, ISEDM.unit, Literal(kpp_data["unit"])))
    triplestore.add((kpp_iri, ISEDM.min_value, Literal(kpp_data["min"])))
    triplestore.add((kpp_iri, ISEDM.max_value, Literal(kpp_data["max"])))
    triplestore.add((kpp_iri, RDFS.comment, Literal(kpp_data["description"])))

When defining KPPs, ensure they are truly critical to mission success. Avoid defining too many KPPs - focus on the most important metrics that will drive decision-making.

References

Knowledge Graph

Visualize the relationships between KPP and related concepts

graph TD A[KPP] --> B[ISEDM] B --> C[MoE] B --> D[Value Function] B --> E[Swing Weight] A --> F[Catapult System] F --> G[Impact Angle] F --> H[Flight Time] F --> I[Range] F --> J[CEP] B --> K[Decision Dashboard] K --> L[Trade-off Analysis] K --> M[Value Functions] K --> N[Priority Weighting]