Model-Based Systems Engineering and Hardware–Software Co-Design-Integrating BDD, DDD, Use Cases, SysML, and Sparx Enterprise Architect through OBD-AI and Smart Inverter Case Studies

Research White Paper | Systems Engineering • Embedded Software • AI-Enabled Diagnostics • Power Electronics • Model-Based Verification

Prepared for: IAS-Research.com, KeenComputer.com, and KeenDirect.com Author: Tapas Shome Date: October 2026

Abstract

Modern engineered products increasingly combine physical hardware, embedded firmware, communication networks, cloud services, artificial intelligence, and business applications. Examples include AI-assisted automotive diagnostics and intelligent inverters for renewable-energy systems. Designing these products as collections of independent hardware and software components often leads to integration failures, ambiguous requirements, inconsistent interfaces, late discovery of timing constraints, and expensive verification cycles.

This paper presents an integrated engineering method that combines Model-Based Systems Engineering (MBSE), SysML, use-case-driven requirements analysis, Behavior-Driven Development (BDD), Domain-Driven Design (DDD), and hardware–software co-design. It uses Sparx Systems Enterprise Architect (EA) as the central modeling and traceability environment.

Two reference systems provide practical examples:

  1. OBD-AI: An automotive diagnostic system integrating an OBD-II/CAN interface, a mobile application, diagnostic logic, vehicle-service knowledge, retrieval-augmented generation (RAG), and an AI-assisted repair advisory service.
  2. Smart inverter: An intelligent power-conversion system combining power electronics, sensing, real-time control firmware, communications, grid-interconnection functions, monitoring, and optional cloud-based analytics.

The paper develops a repeatable workflow from stakeholder needs and operational scenarios through system requirements, logical and physical architecture, hardware–software allocation, interface contracts, behavioral models, implementation, and verification. It distinguishes SysML Block Definition Diagrams from software Behavior-Driven Development and explains how DDD bounded contexts can organize complex software without replacing system-level engineering.

The central recommendation is to establish one traceable engineering thread connecting stakeholder needs, use cases, requirements, architecture, allocated components, executable tests, and verification evidence. Sparx EA provides the model repository and relationship management; software and firmware repositories, automated test tools, simulation environments, and hardware-in-the-loop platforms provide implementation and execution evidence.

The result is a practical framework for reducing ambiguity, improving multidisciplinary collaboration, and managing complexity across automotive, embedded, industrial, energy, and AI-enabled systems.

Executive summary

Hardware–software co-design is not simply the parallel development of circuit boards and software. It is the disciplined allocation of system responsibilities across physical components, firmware, algorithms, communications, applications, and services while preserving system-level behavior and measurable performance.

The recommended engineering approach is:

1. Stakeholder needs and operational context

Who needs the system, what problem it solves, and under what conditions

2. Use cases and system requirements

Use cases, measurable requirements, constraints, hazards, and acceptance criteria

3. System and behavioral models

SysML structure, activities, states, sequences, interfaces, and parametric constraints

4. Hardware–software allocation

Sensors, processors, firmware, communication links, applications, AI services, and safety boundaries

5. Implementation and verification

Code, electronics, simulation, BDD scenarios, unit tests, integration tests, HIL, and system acceptance

6. Evidence, change control, and lifecycle feedback

Traceability, measured results, release baselines, operational monitoring, and engineering updates

Principal recommendations

  • Use SysML and MBSE to define the system, its requirements, structure, behavior, interfaces, constraints, and verification obligations.
  • Use use cases to connect stakeholder objectives to observable system outcomes.
  • Use BDD to express selected requirements as concrete, testable behavior scenarios. Keep the meaning of software BDD distinct from the SysML Block Definition Diagram.
  • Use DDD to organize software around explicit business and engineering domains, such as vehicle diagnostics, knowledge retrieval, inverter control, telemetry, and fleet management.
  • Use hardware–software co-design to allocate functionality according to timing, safety, cost, power, bandwidth, reliability, maintainability, and computational constraints.
  • Use Sparx EA as the authoritative system-model repository, while keeping source code, automated tests, simulation artifacts, and release evidence in the appropriate engineering tools.
  • Treat AI-generated recommendations as advisory unless the system has been specifically engineered, verified, and authorized for a control function. In the reference architectures in this paper, the AI advisory layer is not permitted to replace real-time inverter protection or independently command safety-critical vehicle functions.

1. Introduction

1.1 The engineering challenge

A modern product can contain several interacting engineering disciplines:

  • Mechanical and electrical engineering.
  • Digital electronics and microcontrollers.
  • Analog sensing and signal conditioning.
  • Embedded C/C++, RTOS, and embedded Linux.
  • FPGA logic and hardware accelerators.
  • Communication protocols and network security.
  • Mobile and web applications.
  • Cloud services, databases, and AI/ML.
  • Diagnostics, maintenance, and lifecycle operations.

Each discipline has its own development tools, vocabulary, assumptions, and verification practices. A circuit designer may specify voltage thresholds and propagation delays; an embedded engineer may specify interrupt latency and task scheduling; a cloud engineer may specify API response time; a systems engineer must determine whether the integrated product satisfies the original stakeholder need.

The main problem is therefore not a lack of individual engineering tools. It is the absence of a reliable, shared representation of the system and the relationships among its requirements, design decisions, implementation artifacts, and evidence.

For example, an OBD-AI diagnostic application may identify a vehicle fault code, retrieve service information, and recommend an inspection procedure. The system can still fail if the adapter returns incomplete data, the application associates a code with the wrong vehicle configuration, the AI presents an unsupported diagnosis, or the user interprets a probable cause as a confirmed failed component.

Similarly, a smart inverter can have correct power-stage hardware and functioning firmware but still fail as a system if sensing delays, control-loop timing, protection thresholds, grid-interface behavior, and communication failures have not been engineered together.

1.2 Research objectives

This paper has six objectives:

  1. Establish a practical MBSE workflow that can be implemented in Sparx EA.
  2. Integrate stakeholder needs, use cases, requirements, and system architecture.
  3. Explain how SysML, software BDD, and DDD complement one another.
  4. Demonstrate hardware–software co-design through OBD-AI and a smart inverter.
  5. Define traceability, interface management, verification, and change-control practices.
  6. Propose a practical implementation roadmap for a small engineering or research organization.

1.3 Scope and assumptions

The architectures and numerical examples in this paper are reference designs, not validated production designs. Actual timing budgets, protection limits, communication performance, safety classifications, regulatory obligations, and hardware choices must be established for the intended product and validated against its operating environment.

The paper focuses on systems engineering and design integration. It does not substitute for vehicle-manufacturer service information, electrical protection studies, formal hazard analysis, grid-interconnection approval, or a product-specific functional-safety assessment.

2. Foundations: MBSE, SysML, Use Cases, BDD, and DDD

2.1 Model-Based Systems Engineering

Model-Based Systems Engineering is an approach in which structured engineering models become central artifacts for defining, analyzing, communicating, and verifying a system throughout its lifecycle.

A model is more than a drawing. It should represent identifiable elements and their relationships in a way that supports engineering decisions.

For example, an OBD-AI model should allow an engineer to determine:

  • Which stakeholder need justifies the diagnostic capability?
  • Which system requirement defines acceptable diagnostic-data quality?
  • Which hardware interface obtains the vehicle data?
  • Which software component decodes the data?
  • Which use case depends on that capability?
  • Which test demonstrates that the requirement has been satisfied?
  • Which other requirements could be affected if the interface changes?

This traceable structure is more useful than a collection of diagrams with no consistent links.

The official Sparx Systems MBSE guide describes how Enterprise Architect supports SysML-based modeling and traceability across requirements, design, and verification.

Sparx Systems

+1

2.1.1 Model-based versus document-based engineering

Dimension

Document-centric approach

Model-centric approach

Requirements

Separate documents and spreadsheets

Structured, uniquely identified model elements

Architecture

Drawings with manual maintenance

Linked structure, behavior, and interface models

Traceability

Manual cross-references

Explicit relationships and traceability views

Change impact

Manual review of documents

Relationship-based impact analysis

Verification

Independent test plans

Tests linked to requirements and components

Reuse

Copy-and-edit documents

Reusable packages, patterns, and model elements

Reporting

Manually assembled

Generated views and reports from governed model data

MBSE does not eliminate documents. It changes their role: documents become selected views or controlled outputs from the engineering baseline rather than the only place where engineering knowledge exists.

2.2 SysML: modeling the system

The Systems Modeling Language (SysML) supports the description of system requirements, structure, behavior, and constraints. The formal language and its supported versions are maintained through the Object Management Group (OMG). SysML v2 is now formally published, alongside the established SysML v1.x family. Tool support and migration capabilities must be checked before selecting a version for a project.

OMG

+2

For a practical Sparx EA project, choose a supported modeling profile and version deliberately. Do not assume that a model authored with one SysML version or profile will be semantically interchangeable with every other version.

The following diagram types are especially useful:

Diagram or model

Engineering question

Requirement diagram

What must the system do or satisfy?

Use case diagram

Who interacts with the system and why?

Block Definition Diagram (BDD)

What are the principal types of system elements and their relationships?

Internal Block Diagram (IBD)

How are parts connected through ports and interfaces?

Activity diagram

What sequence of activities and decisions produces an outcome?

Sequence diagram

How do components exchange messages over time?

State machine diagram

How does a component behave across operating states and events?

Parametric diagram

Which quantitative relationships and constraints govern the design?

Package diagram

How is the model organized into manageable subsystems and domains?

The diagrams should not be created merely to satisfy a checklist. Each should answer a defined engineering question.

2.3 Important distinction: SysML BDD and software BDD

The abbreviation BDD has two distinct meanings in this paper.

SysML Block Definition Diagram

Structural modeling

Defines block types, properties, composition, and relationships. It helps answer questions such as whether the OBD-AI system contains a vehicle interface, a mobile application, a diagnostic service, and a knowledge service.

Behavior-Driven Development

Executable behavior specification

Uses business-readable scenarios—commonly expressed in Given/When/Then form—to describe observable behavior and connect requirements to automated tests.

These approaches complement one another, but they are not interchangeable.

A SysML BDD can show that a DiagnosticService block exists. A software BDD scenario can establish that when a supported diagnostic trouble code (DTC) is received, the service returns a result with the required code, vehicle context, and evidence references.

The first describes structure. The second specifies expected behavior.

2.4 Use-case-driven engineering

A use case describes how an actor interacts with a system to achieve a goal under defined conditions.

Actors may include people, external systems, devices, and organizations. A use case should identify a meaningful outcome rather than merely naming a screen, API, or internal function.

For OBD-AI:

  • Actor: vehicle technician.
  • Goal: investigate a reported engine fault.
  • Preconditions: supported vehicle interface and diagnostic session.
  • Main flow: acquire data, decode the DTC, retrieve relevant service information, present evidence, and guide the technician through verification.
  • Alternative flow: unavailable vehicle data, unsupported DTC, communication loss, or conflicting evidence.
  • Postcondition: the diagnostic findings and unresolved uncertainties are recorded.

For a smart inverter:

  • Actor: energy-management controller or commissioning engineer.
  • Goal: place the inverter into an authorized operating mode.
  • Preconditions: self-tests complete, sensors valid, configuration approved, and required interlocks satisfied.
  • Main flow: validate conditions, enable the appropriate operating state, regulate the commanded output, monitor limits, and report status.
  • Alternative flow: sensor failure, grid abnormality, internal fault, or protection trip.
  • Postcondition: the inverter is in a defined operating state with a recorded status and fault history.

Use cases should be refined into measurable system requirements and then into testable acceptance criteria.

2.5 Domain-Driven Design

Domain-Driven Design is a software design approach for systems with complex domain knowledge. It emphasizes a shared vocabulary between domain experts and software developers, explicit models, and boundaries that prevent one part of the software from becoming entangled with another.

A bounded context is a boundary within which a particular domain model and its language have a defined meaning. Martin Fowler's overview explains bounded contexts as a central DDD pattern for managing large models and making their relationships explicit.

martinfowler.com

For example, the phrase fault may mean:

  • A vehicle diagnostic trouble code in automotive diagnostics.
  • A failed retrieval or invalid answer in an AI service.
  • An electrical protection event in a smart inverter.
  • A service incident in a fleet-management platform.

These concepts may share a word but have different semantics, state transitions, owners, and consequences. They should not automatically be represented by one universal software object.

DDD complements MBSE by organizing software responsibilities within the system architecture. It does not replace system requirements, physical architecture, timing analysis, safety analysis, or hardware interface design.

2.6 Hardware–software co-design

Hardware–software co-design treats hardware and software as interacting design choices within one system-level problem.

Consider a smart inverter controller. A control function may be implemented in:

  • Analog circuitry.
  • A microcontroller.
  • An FPGA.
  • A real-time processor.
  • A higher-level supervisory computer.

The allocation decision depends on response time, determinism, precision, reliability, cost, power consumption, development effort, and verification needs.

A similar decision arises in OBD-AI: vehicle-protocol acquisition and basic data validation should occur close to the interface, while knowledge retrieval and AI-generated explanations can be performed in an application or server environment where their latency and availability characteristics are acceptable.

The key principle is:

Allocate each function to the layer that can meet its requirements with the lowest acceptable system risk—not simply to the layer where implementation is easiest.

3. Reference system A: OBD-AI automotive diagnostics

3.1 Purpose and operating concept

OBD-AI is a proposed AI-assisted automotive diagnostic platform combining vehicle data acquisition, diagnostic interpretation, service-document retrieval, and a technician-facing application.

Its intended role is to help users interpret diagnostic evidence and conduct a more systematic troubleshooting process. It is not assumed to replace vehicle-manufacturer procedures, professional judgment, or physical inspection.

The reference system contains five principal areas:

  1. Vehicle interface and data acquisition.
  2. Mobile application and diagnostic session management.
  3. Diagnostic interpretation and rule-based checks.
  4. Service knowledge and retrieval-augmented generation.
  5. Case history, reporting, and optional fleet management.

3.2 Stakeholders and needs

Stakeholder

Primary need

Engineering implication

Vehicle owner

Understand the meaning and urgency of a warning

Clear language, uncertainty disclosure, escalation guidance

Automotive technician

Obtain relevant evidence and service procedures

Vehicle context, reliable data, traceable source references

Fleet operator

Reduce diagnostic time and vehicle downtime

Case history, reporting, fleet-level visibility

Service organization

Standardize troubleshooting workflows

Repeatable procedures, audit trail, access controls

System administrator

Operate the platform securely

Monitoring, configuration management, update control

Research team

Evaluate diagnostic quality

Reproducible test cases, ground truth, evaluation datasets

These needs must be translated into system requirements. For example, “make diagnosis easy” is too vague to verify. A more useful requirement defines which information must be presented, how unsupported conclusions are handled, and what evidence must be recorded.

3.3 Operational context

The following is a conceptual context diagram.

#chatgpt-mermaid-_r_11i_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_11i_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_11i_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_11i_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_11i_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11i_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_11i_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_11i_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_11i_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_11i_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_11i_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_11i_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11i_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11i_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_11i_ p{margin:0;}#chatgpt-mermaid-_r_11i_ .label{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11i_ .cluster-label text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11i_ .cluster-label span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11i_ .cluster-label span p{background-color:transparent;}#chatgpt-mermaid-_r_11i_ .label text,#chatgpt-mermaid-_r_11i_ span{fill:rgb(13, 13, 13);color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11i_ .node rect,#chatgpt-mermaid-_r_11i_ .node circle,#chatgpt-mermaid-_r_11i_ .node ellipse,#chatgpt-mermaid-_r_11i_ .node polygon,#chatgpt-mermaid-_r_11i_ .node path{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_11i_ .rough-node .label text,#chatgpt-mermaid-_r_11i_ .node .label text,#chatgpt-mermaid-_r_11i_ .image-shape .label,#chatgpt-mermaid-_r_11i_ .icon-shape .label{text-anchor:middle;}#chatgpt-mermaid-_r_11i_ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#chatgpt-mermaid-_r_11i_ .rough-node .label,#chatgpt-mermaid-_r_11i_ .node .label,#chatgpt-mermaid-_r_11i_ .image-shape .label,#chatgpt-mermaid-_r_11i_ .icon-shape .label{text-align:center;}#chatgpt-mermaid-_r_11i_ .node.clickable{cursor:pointer;}#chatgpt-mermaid-_r_11i_ .root .anchor path{fill:rgb(143, 143, 143)!important;stroke-width:0;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11i_ .arrowheadPath{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11i_ .edgePath .path{stroke:rgb(143, 143, 143);stroke-width:1px;}#chatgpt-mermaid-_r_11i_ .flowchart-link{stroke:rgb(143, 143, 143);fill:none;}#chatgpt-mermaid-_r_11i_ .edgeLabel{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_11i_ .edgeLabel p{background-color:rgb(252, 252, 252);}#chatgpt-mermaid-_r_11i_ .edgeLabel rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_11i_ .labelBkg{background-color:rgba(252, 252, 252, 0.5);}#chatgpt-mermaid-_r_11i_ .cluster rect{fill:rgb(243, 243, 243);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_11i_ .cluster text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11i_ .cluster span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11i_ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:12px;background:rgb(243, 243, 243);border:1px solid rgba(0, 0, 0, 0.1);border-radius:2px;pointer-events:none;z-index:100;}#chatgpt-mermaid-_r_11i_ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11i_ rect.text{fill:none;stroke-width:0;}#chatgpt-mermaid-_r_11i_ .icon-shape,#chatgpt-mermaid-_r_11i_ .image-shape{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_11i_ .icon-shape p,#chatgpt-mermaid-_r_11i_ .image-shape p{background-color:rgb(252, 252, 252);padding:2px;}#chatgpt-mermaid-_r_11i_ .icon-shape .label rect,#chatgpt-mermaid-_r_11i_ .image-shape .label rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_11i_ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#chatgpt-mermaid-_r_11i_ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#chatgpt-mermaid-_r_11i_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_11i_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_11i_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_11i_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_11i_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11i_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_11i_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_11i_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_11i_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11i_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_11i_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_11i_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11i_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_11i_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_11i_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11i_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_11i_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11i_ .node text{font-size:14px;font-weight:600;letter-spacing:normal;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_11i_ .edgeLabels text{font-size:13px;font-weight:600;letter-spacing:-0.08px;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_11i_ .node tspan[font-weight="normal"],#chatgpt-mermaid-_r_11i_ .edgeLabels tspan[font-weight="normal"]{font-weight:600;}#chatgpt-mermaid-_r_11i_ .edgeLabel .label rect{opacity:1;rx:13px;ry:13px;fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-width:1px;}#chatgpt-mermaid-_r_11i_ .node rect,#chatgpt-mermaid-_r_11i_ .node circle,#chatgpt-mermaid-_r_11i_ .node ellipse,#chatgpt-mermaid-_r_11i_ .node polygon,#chatgpt-mermaid-_r_11i_ .node path{fill:rgb(229, 243, 255);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_11i_ .node rect{rx:16px;ry:16px;}#chatgpt-mermaid-_r_11i_ .node.mermaid-decision .label-container{fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-dasharray:2,2;}#chatgpt-mermaid-_r_11i_ .edgePaths .flowchart-link{stroke:rgb(143, 143, 143);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;}#chatgpt-mermaid-_r_11i_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11i_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}Vehicle OwnerAutomotive TechnicianVehicle ECU NetworkOBD-II AdapterOBD-AI Mobile AppDiagnostic ServiceService Knowledge BaseRAG and AI AdvisoryCase History and Reporting

This is a logical view, not a finalized deployment architecture. The vehicle protocol, adapter capabilities, mobile operating system, server placement, data-retention requirements, and connectivity assumptions must be defined for the actual product.

3.4 System boundary and trust boundaries

The system boundary should explicitly distinguish:

  • The vehicle and its electronic control units.
  • The OBD-II adapter and its firmware.
  • The mobile application.
  • Backend diagnostic services.
  • The document repository and retrieval index.
  • The AI inference service.
  • External service-data providers, if used.

Each boundary introduces potential failure modes. A diagnostic value may be missing, delayed, incorrectly decoded, associated with the wrong vehicle, or presented without sufficient provenance.

The design should therefore retain source information and confidence limitations rather than converting every input into an apparently certain diagnosis.

3.5 OBD-AI logical architecture

#chatgpt-mermaid-_r_11r_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_11r_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_11r_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_11r_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_11r_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11r_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_11r_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_11r_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_11r_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_11r_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_11r_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_11r_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11r_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11r_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_11r_ p{margin:0;}#chatgpt-mermaid-_r_11r_ .label{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11r_ .cluster-label text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11r_ .cluster-label span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11r_ .cluster-label span p{background-color:transparent;}#chatgpt-mermaid-_r_11r_ .label text,#chatgpt-mermaid-_r_11r_ span{fill:rgb(13, 13, 13);color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11r_ .node rect,#chatgpt-mermaid-_r_11r_ .node circle,#chatgpt-mermaid-_r_11r_ .node ellipse,#chatgpt-mermaid-_r_11r_ .node polygon,#chatgpt-mermaid-_r_11r_ .node path{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_11r_ .rough-node .label text,#chatgpt-mermaid-_r_11r_ .node .label text,#chatgpt-mermaid-_r_11r_ .image-shape .label,#chatgpt-mermaid-_r_11r_ .icon-shape .label{text-anchor:middle;}#chatgpt-mermaid-_r_11r_ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#chatgpt-mermaid-_r_11r_ .rough-node .label,#chatgpt-mermaid-_r_11r_ .node .label,#chatgpt-mermaid-_r_11r_ .image-shape .label,#chatgpt-mermaid-_r_11r_ .icon-shape .label{text-align:center;}#chatgpt-mermaid-_r_11r_ .node.clickable{cursor:pointer;}#chatgpt-mermaid-_r_11r_ .root .anchor path{fill:rgb(143, 143, 143)!important;stroke-width:0;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11r_ .arrowheadPath{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11r_ .edgePath .path{stroke:rgb(143, 143, 143);stroke-width:1px;}#chatgpt-mermaid-_r_11r_ .flowchart-link{stroke:rgb(143, 143, 143);fill:none;}#chatgpt-mermaid-_r_11r_ .edgeLabel{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_11r_ .edgeLabel p{background-color:rgb(252, 252, 252);}#chatgpt-mermaid-_r_11r_ .edgeLabel rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_11r_ .labelBkg{background-color:rgba(252, 252, 252, 0.5);}#chatgpt-mermaid-_r_11r_ .cluster rect{fill:rgb(243, 243, 243);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_11r_ .cluster text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11r_ .cluster span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11r_ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:12px;background:rgb(243, 243, 243);border:1px solid rgba(0, 0, 0, 0.1);border-radius:2px;pointer-events:none;z-index:100;}#chatgpt-mermaid-_r_11r_ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_11r_ rect.text{fill:none;stroke-width:0;}#chatgpt-mermaid-_r_11r_ .icon-shape,#chatgpt-mermaid-_r_11r_ .image-shape{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_11r_ .icon-shape p,#chatgpt-mermaid-_r_11r_ .image-shape p{background-color:rgb(252, 252, 252);padding:2px;}#chatgpt-mermaid-_r_11r_ .icon-shape .label rect,#chatgpt-mermaid-_r_11r_ .image-shape .label rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_11r_ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#chatgpt-mermaid-_r_11r_ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#chatgpt-mermaid-_r_11r_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_11r_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_11r_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_11r_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_11r_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11r_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_11r_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_11r_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_11r_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11r_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_11r_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_11r_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11r_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_11r_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_11r_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11r_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_11r_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_11r_ .node text{font-size:14px;font-weight:600;letter-spacing:normal;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_11r_ .edgeLabels text{font-size:13px;font-weight:600;letter-spacing:-0.08px;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_11r_ .node tspan[font-weight="normal"],#chatgpt-mermaid-_r_11r_ .edgeLabels tspan[font-weight="normal"]{font-weight:600;}#chatgpt-mermaid-_r_11r_ .edgeLabel .label rect{opacity:1;rx:13px;ry:13px;fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-width:1px;}#chatgpt-mermaid-_r_11r_ .node rect,#chatgpt-mermaid-_r_11r_ .node circle,#chatgpt-mermaid-_r_11r_ .node ellipse,#chatgpt-mermaid-_r_11r_ .node polygon,#chatgpt-mermaid-_r_11r_ .node path{fill:rgb(229, 243, 255);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_11r_ .node rect{rx:16px;ry:16px;}#chatgpt-mermaid-_r_11r_ .node.mermaid-decision .label-container{fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-dasharray:2,2;}#chatgpt-mermaid-_r_11r_ .edgePaths .flowchart-link{stroke:rgb(143, 143, 143);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;}#chatgpt-mermaid-_r_11r_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_11r_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}OperationsKnowledge and AdvisoryDiagnostic ServicesEdge and Mobile LayerVehicle and Interface LayerCase and Audit StoreService MonitoringDocument RetrievalEvidence AssemblyAI AdvisoryDTC and PID InterpretationDiagnostic RulesVehicle ContextProtocol TransportData ValidationDiagnostic Session ManagerMobile UIVehicle ECUsOBD-II Adaptertelemetry

The diagram separates functions that require dependable vehicle data handling from functions that can tolerate higher latency.

Recommended design rule

The AI service should receive a structured evidence package containing relevant diagnostic observations, vehicle context, applicable service information, and source identifiers. It should not receive an unqualified stream of ambiguous values and be expected to infer the entire system state independently.

3.6 OBD-AI use cases

UC-OBD-01: Establish a diagnostic session

Primary actor: Technician.

Goal: Establish a supported communication session and identify the available diagnostic capabilities.

Preconditions:

  • A compatible vehicle interface is connected.
  • The user has permission to initiate the session.
  • The selected adapter and vehicle configuration are supported.

Main flow:

  1. The user starts a diagnostic session.
  2. The application discovers the adapter.
  3. The interface establishes communication with the vehicle.
  4. The system identifies supported services and available data.
  5. The application validates response structure and session status.
  6. The system records the session configuration and initial status.

Alternative flows:

  • Adapter unavailable.
  • Vehicle communication not supported.
  • A request times out.
  • Data is malformed or incomplete.
  • The connection drops during acquisition.

Postcondition: The application reports a valid session or a clear failure state. It must not silently interpret missing data as a valid zero value.

UC-OBD-02: Interpret a diagnostic trouble code

Primary actor: Technician or vehicle owner.

Goal: Understand a reported DTC in its vehicle context.

Main flow:

  1. Retrieve available DTCs.
  2. Validate the response.
  3. Decode the code using the supported code format and relevant vehicle information.
  4. Retrieve applicable service references.
  5. Assemble the evidence package.
  6. Present the code, likely interpretations, supporting observations, and limitations.

Alternative flows:

  • Unknown code.
  • Incomplete vehicle identification.
  • No applicable service document.
  • Conflicting references.
  • The code does not establish a unique root cause.

Postcondition: The result distinguishes the recorded code from any inferred cause.

UC-OBD-03: Generate a grounded diagnostic advisory

Primary actor: Technician.

Goal: Produce a useful troubleshooting explanation supported by retrieved evidence.

Main flow:

  1. The diagnostic service creates a structured case.
  2. The retrieval service selects relevant documents.
  3. The system records document identifiers and relevant excerpts.
  4. The advisory service generates a proposed interpretation.
  5. The application checks that the output conforms to the required response structure.
  6. The system presents evidence, uncertainty, and next verification steps.
  7. The user records findings from inspection or further testing.

Failure conditions: Retrieval failure, unsupported claims, missing citations, incompatible vehicle context, or malformed model output.

Postcondition: A grounded advisory is recorded—or the application explicitly reports that a reliable advisory could not be produced.

UC-OBD-04: Preserve a diagnostic case

Primary actor: Technician or service organization.

Goal: Retain enough context to reproduce or audit the diagnostic session.

The record should include, subject to privacy and retention policy:

  • Vehicle context and supported identifiers.
  • Adapter and software versions.
  • Relevant diagnostic observations.
  • Retrieved document identifiers and versions.
  • AI model and prompt/configuration versions where appropriate.
  • Advisory output and stated limitations.
  • Technician findings and subsequent tests.
  • Timestamps and relevant failure events.

A case record must distinguish measured facts from generated interpretations and user-entered observations.

3.7 Example OBD-AI software BDD scenarios

The following Gherkin scenarios are illustrative acceptance specifications. They become executable tests only after step definitions, fixtures, and test environments are implemented.

Feature: Diagnostic trouble code interpretation Scenario: Interpret a supported diagnostic trouble code Given a valid diagnostic session exists And the vehicle context is known And a supported diagnostic trouble code is available When the technician requests an interpretation Then the system returns the decoded code And the result includes the vehicle context And the result distinguishes the code from a confirmed root cause And applicable evidence references are recorded Scenario: Handle an unavailable diagnostic response Given a diagnostic session exists And the vehicle does not respond to the requested service When the diagnostic service requests the data Then the request is marked as unsuccessful And the system does not substitute zero for missing data And the application reports the unavailable information Scenario: Decline an unsupported AI conclusion Given a diagnostic case has insufficient supporting evidence When the AI advisory is generated Then the response identifies the evidence limitation And the response does not present an unverified component failure as confirmed And the user is directed to appropriate verification steps

A useful BDD scenario describes externally observable behavior. It should not prescribe internal class names or a particular database implementation unless those are part of the interface contract.

3.8 OBD-AI state model

A diagnostic session can be represented as a state machine:

#chatgpt-mermaid-_r_12a_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_12a_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_12a_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_12a_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_12a_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12a_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_12a_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_12a_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_12a_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_12a_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_12a_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_12a_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12a_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12a_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_12a_ p{margin:0;}#chatgpt-mermaid-_r_12a_ defs [id$="-barbEnd"]{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12a_ g.stateGroup text{fill:rgb(83, 154, 248);stroke:none;font-size:10px;}#chatgpt-mermaid-_r_12a_ g.stateGroup text{fill:rgb(13, 13, 13);stroke:none;font-size:10px;}#chatgpt-mermaid-_r_12a_ g.stateGroup .state-title{font-weight:bolder;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12a_ g.stateGroup rect{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_12a_ g.stateGroup line{stroke:rgb(143, 143, 143);stroke-width:1;}#chatgpt-mermaid-_r_12a_ .transition{stroke:rgb(143, 143, 143);stroke-width:1;fill:none;}#chatgpt-mermaid-_r_12a_ .stateGroup .composit{fill:transparent;border-bottom:1px;}#chatgpt-mermaid-_r_12a_ .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#chatgpt-mermaid-_r_12a_ .state-note{stroke:rgb(107, 198, 127);fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_12a_ .state-note text{fill:rgb(13, 13, 13);stroke:none;font-size:10px;}#chatgpt-mermaid-_r_12a_ .stateLabel .box{stroke:none;stroke-width:0;fill:rgb(222, 234, 251);opacity:0.5;}#chatgpt-mermaid-_r_12a_ .edgeLabel .label rect{fill:rgb(222, 234, 251);opacity:0.5;}#chatgpt-mermaid-_r_12a_ .edgeLabel{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_12a_ .edgeLabel p{background-color:rgb(252, 252, 252);}#chatgpt-mermaid-_r_12a_ .edgeLabel rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_12a_ .edgeLabel .label text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12a_ .label div .edgeLabel{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12a_ .stateLabel text{fill:rgb(13, 13, 13);font-size:10px;font-weight:bold;}#chatgpt-mermaid-_r_12a_ .node circle.state-start{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12a_ .node .fork-join{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12a_ .node circle.state-end{fill:rgb(83, 154, 248);stroke:transparent;stroke-width:1.5;}#chatgpt-mermaid-_r_12a_ .end-state-inner{fill:transparent;stroke-width:1.5;}#chatgpt-mermaid-_r_12a_ .node rect{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_12a_ .node polygon{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_12a_ [id$="-barbEnd"]{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12a_ .statediagram-cluster rect{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_12a_ .cluster-label,#chatgpt-mermaid-_r_12a_ .nodeLabel{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12a_ .statediagram-cluster rect.outer{rx:5px;ry:5px;}#chatgpt-mermaid-_r_12a_ .statediagram-state .divider{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_12a_ .statediagram-state .title-state{rx:5px;ry:5px;}#chatgpt-mermaid-_r_12a_ .statediagram-cluster.statediagram-cluster .inner{fill:transparent;}#chatgpt-mermaid-_r_12a_ .statediagram-cluster.statediagram-cluster-alt .inner{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_12a_ .statediagram-cluster .inner{rx:0;ry:0;}#chatgpt-mermaid-_r_12a_ .statediagram-state rect.basic{rx:5px;ry:5px;}#chatgpt-mermaid-_r_12a_ .statediagram-state rect.divider{stroke-dasharray:10,10;fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_12a_ .note-edge{stroke-dasharray:5;}#chatgpt-mermaid-_r_12a_ .statediagram-note rect{fill:rgb(243, 243, 243);stroke:rgb(107, 198, 127);stroke-width:1px;rx:0;ry:0;}#chatgpt-mermaid-_r_12a_ .statediagram-note rect{fill:rgb(243, 243, 243);stroke:rgb(107, 198, 127);stroke-width:1px;rx:0;ry:0;}#chatgpt-mermaid-_r_12a_ .statediagram-note text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12a_ .statediagram-note .nodeLabel{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12a_ .statediagram .edgeLabel{color:red;}#chatgpt-mermaid-_r_12a_ [id$="-dependencyStart"],#chatgpt-mermaid-_r_12a_ [id$="-dependencyEnd"]{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);stroke-width:1;}#chatgpt-mermaid-_r_12a_ .statediagramTitleText{text-anchor:middle;font-size:18px;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12a_ [data-look="neo"].statediagram-cluster rect{fill:rgb(222, 234, 251);stroke:url(#chatgpt-mermaid-_r_12a_-gradient);stroke-width:1;}#chatgpt-mermaid-_r_12a_ [data-look="neo"].statediagram-cluster rect.outer{rx:5px;ry:5px;filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12a_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_12a_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_12a_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_12a_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_12a_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12a_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_12a_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_12a_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_12a_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12a_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_12a_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_12a_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12a_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_12a_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_12a_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12a_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_12a_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12a_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}IdleConnectingConnectedFailedAcquiringDataValidatedDegradedInterpretingAdvisoryReadyNeedsMoreEvidenceClosedStart sessionLink establishedConnection errorRequest diagnostic dataValid responseTimeout or incompletedataDecode and contextualizeEvidence sufficientEvidence insufficientRequest additional dataSave caseRetry permittedReset session

The model helps define permitted transitions, timeout handling, retry behavior, and recovery. It should also include cancellation, user disconnection, authorization failures, and any relevant vehicle-specific constraints in a production design.

4. Reference system B: Smart inverter and intelligent power conversion

4.1 Purpose and operating concept

A smart inverter converts electrical power between DC and AC and may coordinate renewable generation, batteries, local loads, grid interaction, and monitoring functions.

The precise scope varies by product. A grid-following photovoltaic inverter, a grid-forming battery inverter, and a hybrid inverter have different operating modes, protection requirements, and control strategies. The example in this paper is a generalized inverter architecture; it does not assume that one control algorithm is appropriate for all inverter classes.

The reference system includes:

  • Power conversion stage.
  • Voltage and current sensing.
  • Gate-drive and switching-control hardware.
  • Real-time control processor.
  • Protection and fault-management mechanisms.
  • Communications and supervisory interface.
  • Optional remote monitoring and analytics.

4.2 Stakeholders and needs

Stakeholder

Need

Engineering consequence

System integrator

Predictable integration with the power system

Defined electrical and communication interfaces

Grid operator or utility

Operation within applicable interconnection requirements

Product-specific grid behavior and compliance verification

Installer

Safe commissioning and configuration

Interlocks, configuration validation, diagnostic reporting

Operator

Visibility into power, temperature, and operating status

Accurate telemetry and clear state reporting

Maintenance engineer

Fault isolation and serviceability

Event records, test points, version information

Manufacturer

Repeatable production and field quality

Controlled requirements, design baselines, test evidence

The requirements must be derived from the intended electrical rating, topology, installation environment, jurisdiction, and relevant standards. A generic model cannot determine all of these obligations.

4.3 Smart inverter context

#chatgpt-mermaid-_r_12j_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_12j_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_12j_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_12j_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_12j_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12j_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_12j_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_12j_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_12j_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_12j_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_12j_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_12j_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12j_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12j_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_12j_ p{margin:0;}#chatgpt-mermaid-_r_12j_ .label{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12j_ .cluster-label text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12j_ .cluster-label span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12j_ .cluster-label span p{background-color:transparent;}#chatgpt-mermaid-_r_12j_ .label text,#chatgpt-mermaid-_r_12j_ span{fill:rgb(13, 13, 13);color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12j_ .node rect,#chatgpt-mermaid-_r_12j_ .node circle,#chatgpt-mermaid-_r_12j_ .node ellipse,#chatgpt-mermaid-_r_12j_ .node polygon,#chatgpt-mermaid-_r_12j_ .node path{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_12j_ .rough-node .label text,#chatgpt-mermaid-_r_12j_ .node .label text,#chatgpt-mermaid-_r_12j_ .image-shape .label,#chatgpt-mermaid-_r_12j_ .icon-shape .label{text-anchor:middle;}#chatgpt-mermaid-_r_12j_ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#chatgpt-mermaid-_r_12j_ .rough-node .label,#chatgpt-mermaid-_r_12j_ .node .label,#chatgpt-mermaid-_r_12j_ .image-shape .label,#chatgpt-mermaid-_r_12j_ .icon-shape .label{text-align:center;}#chatgpt-mermaid-_r_12j_ .node.clickable{cursor:pointer;}#chatgpt-mermaid-_r_12j_ .root .anchor path{fill:rgb(143, 143, 143)!important;stroke-width:0;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12j_ .arrowheadPath{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12j_ .edgePath .path{stroke:rgb(143, 143, 143);stroke-width:1px;}#chatgpt-mermaid-_r_12j_ .flowchart-link{stroke:rgb(143, 143, 143);fill:none;}#chatgpt-mermaid-_r_12j_ .edgeLabel{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_12j_ .edgeLabel p{background-color:rgb(252, 252, 252);}#chatgpt-mermaid-_r_12j_ .edgeLabel rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_12j_ .labelBkg{background-color:rgba(252, 252, 252, 0.5);}#chatgpt-mermaid-_r_12j_ .cluster rect{fill:rgb(243, 243, 243);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_12j_ .cluster text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12j_ .cluster span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12j_ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:12px;background:rgb(243, 243, 243);border:1px solid rgba(0, 0, 0, 0.1);border-radius:2px;pointer-events:none;z-index:100;}#chatgpt-mermaid-_r_12j_ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_12j_ rect.text{fill:none;stroke-width:0;}#chatgpt-mermaid-_r_12j_ .icon-shape,#chatgpt-mermaid-_r_12j_ .image-shape{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_12j_ .icon-shape p,#chatgpt-mermaid-_r_12j_ .image-shape p{background-color:rgb(252, 252, 252);padding:2px;}#chatgpt-mermaid-_r_12j_ .icon-shape .label rect,#chatgpt-mermaid-_r_12j_ .image-shape .label rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_12j_ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#chatgpt-mermaid-_r_12j_ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#chatgpt-mermaid-_r_12j_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_12j_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_12j_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_12j_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_12j_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12j_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_12j_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_12j_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_12j_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12j_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_12j_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_12j_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12j_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_12j_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_12j_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12j_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_12j_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_12j_ .node text{font-size:14px;font-weight:600;letter-spacing:normal;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_12j_ .edgeLabels text{font-size:13px;font-weight:600;letter-spacing:-0.08px;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_12j_ .node tspan[font-weight="normal"],#chatgpt-mermaid-_r_12j_ .edgeLabels tspan[font-weight="normal"]{font-weight:600;}#chatgpt-mermaid-_r_12j_ .edgeLabel .label rect{opacity:1;rx:13px;ry:13px;fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-width:1px;}#chatgpt-mermaid-_r_12j_ .node rect,#chatgpt-mermaid-_r_12j_ .node circle,#chatgpt-mermaid-_r_12j_ .node ellipse,#chatgpt-mermaid-_r_12j_ .node polygon,#chatgpt-mermaid-_r_12j_ .node path{fill:rgb(229, 243, 255);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_12j_ .node rect{rx:16px;ry:16px;}#chatgpt-mermaid-_r_12j_ .node.mermaid-decision .label-container{fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-dasharray:2,2;}#chatgpt-mermaid-_r_12j_ .edgePaths .flowchart-link{stroke:rgb(143, 143, 143);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;}#chatgpt-mermaid-_r_12j_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_12j_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}PV Array or BatteryPower StageAC Bus or GridVoltage and Current SensorsReal-Time ControllerProtection and InterlocksLocal HMI or Installer ToolCommunications GatewayOptional Monitoring Platform

This view deliberately distinguishes the local control and protection path from external monitoring.

The monitoring service may help detect trends, compare operating histories, and support maintenance. It must not be assumed to have the timing, availability, or authority required for fast local protection.

4.4 Smart inverter use cases

UC-INV-01: Start and initialize the inverter

Primary actor: Installer or supervisory controller.

Goal: Transition the inverter from a safe inactive state to an authorized operating state.

Preconditions:

  • The hardware is installed according to the approved design.
  • Required interlocks are valid.
  • Configuration parameters have been validated.
  • Required self-tests pass.
  • Operating conditions satisfy the product's defined limits.

Main flow:

  1. A start request is received.
  2. The controller validates the request and operating mode.
  3. Self-tests and sensor plausibility checks execute.
  4. Required interlocks are checked.
  5. The control system transitions through the specified startup sequence.
  6. The inverter enters the authorized operating state.
  7. Status and relevant telemetry are recorded.

Alternative flows:

  • Sensor failure.
  • Invalid configuration.
  • Interlock not satisfied.
  • Internal diagnostic failure.
  • Operating conditions outside allowed limits.

Postcondition: The inverter is operating within the permitted state machine or remains in a defined non-operating or fault state.

UC-INV-02: Regulate electrical output

Primary actor: Local controller or supervisory control system.

Goal: Regulate the inverter output according to the authorized operating mode and applicable constraints.

The use case must specify the controlled quantities, operating envelope, allowed error, dynamic response, and conditions under which the command is rejected or limited.

A complete design includes:

  • Sampling and measurement requirements.
  • Control-loop period.
  • Computation and actuation deadlines.
  • Sensor and actuator ranges.
  • Saturation handling.
  • Mode transitions.
  • Fault detection and response.
  • Verification under representative electrical and environmental conditions.

UC-INV-03: Respond to an abnormal condition

Primary actor: Internal protection logic.

Goal: Bring the system to the required safe or protective response when a defined abnormal condition occurs.

The precise response depends on the fault, inverter topology, product requirements, and applicable standards. A design might require limiting output, inhibiting switching, disconnecting an interface, recording a fault, or transitioning into a controlled shutdown.

The required response must be established through hazard analysis and electrical design, not inferred from a generic state diagram.

UC-INV-04: Report operating status

Primary actor: Installer, operator, or monitoring platform.

Goal: Report operating state, measured quantities, active warnings, and relevant event history.

The communication subsystem should expose data with defined units, timestamps, quality flags, and versioned message schemas. If communication is lost, local control and protection must continue according to their independent requirements.

4.5 Smart inverter software BDD scenarios

Feature: Inverter startup and protection Scenario: Start when all required conditions are valid Given the inverter is in the inactive state And required self-tests have passed And sensor checks are valid And all required interlocks are satisfied And the requested operating mode is authorized When a start request is accepted Then the controller follows the defined startup sequence And the inverter enters the permitted operating state And the transition is recorded Scenario: Reject startup when a required sensor is invalid Given the inverter is in the inactive state And a required sensor has failed its validity check When a start request is received Then startup is not authorized And the controller reports the sensor fault And the inverter remains in a defined non-operating state Scenario: Handle a protection event Given the inverter is operating And a monitored condition crosses its configured protection criterion When the protection logic confirms the event Then the specified protective response is initiated And the controller records the event And external communications are not required for the local response Scenario: Continue local control when monitoring is unavailable Given the inverter is operating within permitted limits And the remote monitoring link becomes unavailable When the communication failure is detected Then the controller follows the defined communications-loss policy And local control and protection retain their required behavior And the communication fault is reported when possible

These scenarios describe requirements-level behavior. A real inverter project must add quantitative limits, event-detection rules, state-transition guards, timing criteria, and test conditions.

4.6 Smart inverter state model

#chatgpt-mermaid-_r_132_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_132_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_132_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_132_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_132_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_132_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_132_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_132_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_132_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_132_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_132_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_132_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_132_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_132_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_132_ p{margin:0;}#chatgpt-mermaid-_r_132_ defs [id$="-barbEnd"]{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_132_ g.stateGroup text{fill:rgb(83, 154, 248);stroke:none;font-size:10px;}#chatgpt-mermaid-_r_132_ g.stateGroup text{fill:rgb(13, 13, 13);stroke:none;font-size:10px;}#chatgpt-mermaid-_r_132_ g.stateGroup .state-title{font-weight:bolder;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_132_ g.stateGroup rect{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_132_ g.stateGroup line{stroke:rgb(143, 143, 143);stroke-width:1;}#chatgpt-mermaid-_r_132_ .transition{stroke:rgb(143, 143, 143);stroke-width:1;fill:none;}#chatgpt-mermaid-_r_132_ .stateGroup .composit{fill:transparent;border-bottom:1px;}#chatgpt-mermaid-_r_132_ .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#chatgpt-mermaid-_r_132_ .state-note{stroke:rgb(107, 198, 127);fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_132_ .state-note text{fill:rgb(13, 13, 13);stroke:none;font-size:10px;}#chatgpt-mermaid-_r_132_ .stateLabel .box{stroke:none;stroke-width:0;fill:rgb(222, 234, 251);opacity:0.5;}#chatgpt-mermaid-_r_132_ .edgeLabel .label rect{fill:rgb(222, 234, 251);opacity:0.5;}#chatgpt-mermaid-_r_132_ .edgeLabel{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_132_ .edgeLabel p{background-color:rgb(252, 252, 252);}#chatgpt-mermaid-_r_132_ .edgeLabel rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_132_ .edgeLabel .label text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_132_ .label div .edgeLabel{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_132_ .stateLabel text{fill:rgb(13, 13, 13);font-size:10px;font-weight:bold;}#chatgpt-mermaid-_r_132_ .node circle.state-start{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_132_ .node .fork-join{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_132_ .node circle.state-end{fill:rgb(83, 154, 248);stroke:transparent;stroke-width:1.5;}#chatgpt-mermaid-_r_132_ .end-state-inner{fill:transparent;stroke-width:1.5;}#chatgpt-mermaid-_r_132_ .node rect{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_132_ .node polygon{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_132_ [id$="-barbEnd"]{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_132_ .statediagram-cluster rect{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_132_ .cluster-label,#chatgpt-mermaid-_r_132_ .nodeLabel{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_132_ .statediagram-cluster rect.outer{rx:5px;ry:5px;}#chatgpt-mermaid-_r_132_ .statediagram-state .divider{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_132_ .statediagram-state .title-state{rx:5px;ry:5px;}#chatgpt-mermaid-_r_132_ .statediagram-cluster.statediagram-cluster .inner{fill:transparent;}#chatgpt-mermaid-_r_132_ .statediagram-cluster.statediagram-cluster-alt .inner{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_132_ .statediagram-cluster .inner{rx:0;ry:0;}#chatgpt-mermaid-_r_132_ .statediagram-state rect.basic{rx:5px;ry:5px;}#chatgpt-mermaid-_r_132_ .statediagram-state rect.divider{stroke-dasharray:10,10;fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_132_ .note-edge{stroke-dasharray:5;}#chatgpt-mermaid-_r_132_ .statediagram-note rect{fill:rgb(243, 243, 243);stroke:rgb(107, 198, 127);stroke-width:1px;rx:0;ry:0;}#chatgpt-mermaid-_r_132_ .statediagram-note rect{fill:rgb(243, 243, 243);stroke:rgb(107, 198, 127);stroke-width:1px;rx:0;ry:0;}#chatgpt-mermaid-_r_132_ .statediagram-note text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_132_ .statediagram-note .nodeLabel{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_132_ .statediagram .edgeLabel{color:red;}#chatgpt-mermaid-_r_132_ [id$="-dependencyStart"],#chatgpt-mermaid-_r_132_ [id$="-dependencyEnd"]{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);stroke-width:1;}#chatgpt-mermaid-_r_132_ .statediagramTitleText{text-anchor:middle;font-size:18px;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_132_ [data-look="neo"].statediagram-cluster rect{fill:rgb(222, 234, 251);stroke:url(#chatgpt-mermaid-_r_132_-gradient);stroke-width:1;}#chatgpt-mermaid-_r_132_ [data-look="neo"].statediagram-cluster rect.outer{rx:5px;ry:5px;filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_132_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_132_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_132_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_132_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_132_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_132_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_132_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_132_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_132_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_132_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_132_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_132_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_132_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_132_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_132_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_132_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_132_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_132_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}InactiveSelfTestReadyFaultStartingOperatingLimitedOperationProtectiveResponseAuthorized startup requestChecks passCheck failureConditions validStartup sequencecompleteStartup failureDerating conditionConditions recoverProtection criterion metProtection criterion metFault latchedAuthorized reset andchecksControlled shutdownControlled shutdown

This diagram is illustrative. A production state machine must explicitly define each state's entry and exit actions, guards, timeout behavior, reset authorization, and permitted transitions. A protection event may require a response that cannot be represented by a simple software transition alone; the electrical design and physical actuation path must also be verified.

5. Establishing the engineering model in Sparx Enterprise Architect

5.1 Why use a central model repository?

Sparx Enterprise Architect can serve as the shared repository for system requirements, SysML diagrams, architecture elements, interfaces, use cases, test cases, and traceability relationships.

Its requirements facilities support structured requirement management and relationships such as derive, refine, satisfy, verify, and trace. The exact menu locations and modeling capabilities depend on the installed EA release, edition, and selected modeling technology.

Enterprise Architect User Guide

+1

EA should not be treated as a replacement for every engineering tool. Firmware source code belongs in a source-control system; circuit simulation belongs in an appropriate electrical engineering environment; control models may belong in MATLAB/Simulink or an equivalent platform; automated software tests belong in the software test toolchain. EA connects these artifacts to the system model.

5.2 Recommended repository structure

Create a project repository with consistent packages and unique element identifiers.

System Engineering Model | +-- 00_Project_Governance | +-- Scope_and_Assumptions | +-- Modeling_Conventions | +-- Change_Control | +-- Review_and_Approval | +-- 01_Stakeholder_Analysis | +-- Stakeholders | +-- Needs | +-- Operational_Context | +-- Mission_Scenarios | +-- 02_Requirements | +-- System_Requirements | +-- Performance_Requirements | +-- Interface_Requirements | +-- Safety_and_Security | +-- Verification_Requirements | +-- 03_Use_Cases | +-- OBD_AI | +-- Smart_Inverter | +-- Actors | +-- Scenarios | +-- 04_System_Architecture | +-- Context_Architecture | +-- Logical_Architecture | +-- Physical_Architecture | +-- Deployment_Architecture | +-- 05_Hardware_Design | +-- Electronics | +-- Sensors_and_Actuators | +-- Processor_and_FPGA | +-- Power_and_Thermal | +-- 06_Software_Architecture | +-- Embedded_Firmware | +-- RTOS_and_Drivers | +-- Application_Software | +-- Backend_and_AI | +-- Domain_Models | +-- 07_Interfaces | +-- Electrical_ICDs | +-- Communication_Protocols | +-- APIs_and_Data_Contracts | +-- 08_Behavior | +-- Activities | +-- Sequences | +-- State_Machines | +-- BDD_Acceptance_Specifications | +-- 09_Analysis_and_Trade_Studies | +-- Timing | +-- Reliability | +-- Cost | +-- Power_and_Thermal | +-- 10_Verification_and_Validation | +-- Verification_Cases | +-- Software_Tests | +-- Hardware_Tests | +-- HIL_and_System_Tests | +-- Evidence_and_Reports | +-- 11_Deployment_and_Operations | +-- Configuration | +-- Monitoring | +-- Maintenance | +-- Field_Feedback | +-- 12_Reviews_and_Baselines +-- Design_Reviews +-- Approved_Baselines +-- Release_Records

This is a starting pattern, not a mandatory EA package layout. The structure should be scaled to the product, team size, contractual requirements, and level of assurance required.

5.3 Step-by-step: create the model

  1. Create the model and select the modeling technology. Create the project repository and select the supported SysML profile and version. Record the choice in the model governance package.
  2. Define naming and identifier conventions. Use stable identifiers such as REQ-OBD-001, UC-OBD-001, BLK-OBD-001, IF-OBD-001, and TC-OBD-001. Avoid using diagram position or package location as the identity of an element.
  3. Model stakeholders and their needs. Identify users, operators, maintainers, external systems, and regulatory or contractual stakeholders. Link each important need to one or more operational scenarios.
  4. Create the use-case model. Add actors, system boundaries, use cases, and associations. Document main flows, alternate flows, preconditions, and postconditions in the use-case specifications.
  5. Create the requirements hierarchy. Use EA's requirements facilities or the selected SysML requirement elements. Define requirement text, unique IDs, rationale, priority, verification method, and ownership as appropriate.
  6. Build the structural architecture. Use Block Definition Diagrams to identify blocks, compositions, and relationships. Use Internal Block Diagrams to model ports, connectors, item flows, and component interfaces.
  7. Add behavior models. Create activity, sequence, and state-machine diagrams for the behaviors that are important to performance, fault handling, safety, and integration.
  8. Allocate requirements and behavior. Link requirements to the components that satisfy them, and identify which verification cases demonstrate compliance.
  9. Connect implementation artifacts. Record links or controlled references to source repositories, build artifacts, test suites, circuit models, and HIL results. Ensure the referenced version or commit can be identified.
  10. Review and baseline the model. Check completeness, naming, relationships, unresolved issues, and requirement-to-test coverage. Publish an approved baseline before implementation or formal design review.

5.4 How to model a requirement

A requirement should have a unique identifier, a concise statement, a rationale, and a defined means of verification.

A useful template is:

Attribute

Example

Identifier

REQ-OBD-012

Name

Missing-data handling

Requirement

The diagnostic service shall represent an unavailable requested value as unavailable and shall not silently substitute zero.

Rationale

Zero may be a valid measurement; substituting it can produce misleading diagnostic results.

Source

Diagnostic-session use case

Verification method

Test

Verification case

TC-OBD-012

Owner

Diagnostic software engineering

Status

Proposed, approved, implemented, or verified

The sample statement is intentionally testable. It specifies an observable condition rather than instructing a developer to use a particular programming language or data structure.

5.5 Relationship types and traceability

Use model relationships deliberately. In a SysML-based workflow, common relationships include:

  • Derive: A lower-level requirement is derived from a higher-level requirement or other requirement source.
  • Refine: A model element adds detail to a requirement or concept.
  • Satisfy: A design element is intended to meet a requirement.
  • Verify: A test case or verification element establishes whether a requirement is met.
  • Trace: A general relationship records a relevant dependency.
  • Contain: A package or model element organizes related elements.

EA's Traceability window and relationship-management facilities can help identify relationships that are not visible in an individual diagram.

Sparx Systems

+1

A basic traceability chain is:

#chatgpt-mermaid-_r_13h_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_13h_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_13h_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_13h_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_13h_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13h_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_13h_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_13h_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_13h_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_13h_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_13h_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_13h_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13h_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13h_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_13h_ p{margin:0;}#chatgpt-mermaid-_r_13h_ .label{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13h_ .cluster-label text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13h_ .cluster-label span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13h_ .cluster-label span p{background-color:transparent;}#chatgpt-mermaid-_r_13h_ .label text,#chatgpt-mermaid-_r_13h_ span{fill:rgb(13, 13, 13);color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13h_ .node rect,#chatgpt-mermaid-_r_13h_ .node circle,#chatgpt-mermaid-_r_13h_ .node ellipse,#chatgpt-mermaid-_r_13h_ .node polygon,#chatgpt-mermaid-_r_13h_ .node path{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_13h_ .rough-node .label text,#chatgpt-mermaid-_r_13h_ .node .label text,#chatgpt-mermaid-_r_13h_ .image-shape .label,#chatgpt-mermaid-_r_13h_ .icon-shape .label{text-anchor:middle;}#chatgpt-mermaid-_r_13h_ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#chatgpt-mermaid-_r_13h_ .rough-node .label,#chatgpt-mermaid-_r_13h_ .node .label,#chatgpt-mermaid-_r_13h_ .image-shape .label,#chatgpt-mermaid-_r_13h_ .icon-shape .label{text-align:center;}#chatgpt-mermaid-_r_13h_ .node.clickable{cursor:pointer;}#chatgpt-mermaid-_r_13h_ .root .anchor path{fill:rgb(143, 143, 143)!important;stroke-width:0;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13h_ .arrowheadPath{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13h_ .edgePath .path{stroke:rgb(143, 143, 143);stroke-width:1px;}#chatgpt-mermaid-_r_13h_ .flowchart-link{stroke:rgb(143, 143, 143);fill:none;}#chatgpt-mermaid-_r_13h_ .edgeLabel{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_13h_ .edgeLabel p{background-color:rgb(252, 252, 252);}#chatgpt-mermaid-_r_13h_ .edgeLabel rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_13h_ .labelBkg{background-color:rgba(252, 252, 252, 0.5);}#chatgpt-mermaid-_r_13h_ .cluster rect{fill:rgb(243, 243, 243);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_13h_ .cluster text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13h_ .cluster span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13h_ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:12px;background:rgb(243, 243, 243);border:1px solid rgba(0, 0, 0, 0.1);border-radius:2px;pointer-events:none;z-index:100;}#chatgpt-mermaid-_r_13h_ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13h_ rect.text{fill:none;stroke-width:0;}#chatgpt-mermaid-_r_13h_ .icon-shape,#chatgpt-mermaid-_r_13h_ .image-shape{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_13h_ .icon-shape p,#chatgpt-mermaid-_r_13h_ .image-shape p{background-color:rgb(252, 252, 252);padding:2px;}#chatgpt-mermaid-_r_13h_ .icon-shape .label rect,#chatgpt-mermaid-_r_13h_ .image-shape .label rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_13h_ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#chatgpt-mermaid-_r_13h_ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#chatgpt-mermaid-_r_13h_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_13h_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_13h_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_13h_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_13h_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13h_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_13h_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_13h_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_13h_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13h_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_13h_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_13h_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13h_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_13h_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_13h_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13h_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_13h_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13h_ .node text{font-size:14px;font-weight:600;letter-spacing:normal;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_13h_ .edgeLabels text{font-size:13px;font-weight:600;letter-spacing:-0.08px;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_13h_ .node tspan[font-weight="normal"],#chatgpt-mermaid-_r_13h_ .edgeLabels tspan[font-weight="normal"]{font-weight:600;}#chatgpt-mermaid-_r_13h_ .edgeLabel .label rect{opacity:1;rx:13px;ry:13px;fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-width:1px;}#chatgpt-mermaid-_r_13h_ .node rect,#chatgpt-mermaid-_r_13h_ .node circle,#chatgpt-mermaid-_r_13h_ .node ellipse,#chatgpt-mermaid-_r_13h_ .node polygon,#chatgpt-mermaid-_r_13h_ .node path{fill:rgb(229, 243, 255);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_13h_ .node rect{rx:16px;ry:16px;}#chatgpt-mermaid-_r_13h_ .node.mermaid-decision .label-container{fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-dasharray:2,2;}#chatgpt-mermaid-_r_13h_ .edgePaths .flowchart-link{stroke:rgb(143, 143, 143);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;}#chatgpt-mermaid-_r_13h_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13h_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}Stakeholder NeedUse CaseSystem RequirementArchitecture ElementHardware or SoftwareAllocationImplementation ArtifactVerification CaseVerification Evidence

The arrows represent traceability relationships conceptually. Configure the actual EA relationship types according to the semantics of each link. Do not represent every relationship using a generic trace connector merely because it is convenient.

5.6 Requirement quality checks

A requirement review should ask:

  1. Is the requirement necessary and in scope?
  2. Is the statement unambiguous?
  3. Does it specify a measurable outcome or observable condition?
  4. Is the requirement feasible under the system's physical and computational constraints?
  5. Is the verification method defined?
  6. Does the requirement have an appropriate parent, source, or rationale?
  7. Is there an identified component or design element responsible for satisfying it?
  8. Are safety, security, failure, and degraded-mode implications considered?
  9. Are units, tolerances, timing boundaries, and operating conditions explicit where needed?
  10. Is the requirement independent of unnecessary implementation choices?

Avoid requirements such as “the software should be fast,” “the system must be reliable,” or “the inverter should be intelligent.” Define what the system must do, under which conditions, and how the result will be demonstrated.

6. Hardware–software co-design workflow

6.1 Start with system-level constraints

Hardware and software allocation should follow from requirements, not from a preferred processor or programming language.

For each function, document:

  • Required response time and deadline.
  • Execution frequency and worst-case workload.
  • Input and output data rates.
  • Numerical precision and dynamic range.
  • Memory and storage requirements.
  • Power consumption and thermal limits.
  • Availability and fault-response requirements.
  • Safety or security constraints.
  • Cost, manufacturability, and lifecycle support.
  • Verification and maintenance strategy.

Not every attribute applies equally to every function. A vehicle DTC decoding function, an inverter current-control loop, and a cloud report-generation service have different timing and failure consequences.

6.2 Allocation decision matrix

Function

Candidate implementation

Primary decision factors

Analog conditioning

Analog electronics

Noise, bandwidth, accuracy, isolation

Fast digital acquisition

MCU peripheral, FPGA, or dedicated interface

Timing determinism, channel count, protocol

Vehicle data transport

Adapter firmware and mobile software

Protocol support, buffering, compatibility

DTC decoding

Embedded or application software

Data context, maintainability, updateability

AI-assisted explanation

Backend AI service

Latency tolerance, evidence quality, compute cost

Inverter fast control

Real-time MCU, DSP, or FPGA

Control deadline, deterministic execution, precision

Inverter protection

Dedicated circuitry and/or validated local control logic

Fault response, independence, diagnostic coverage

Supervisory optimization

Higher-level processor or service

Scheduling flexibility, computational load

Monitoring and reporting

Gateway or cloud application

Connectivity, retention, security, analytics

This table proposes candidate locations, not a final allocation. Each assignment must be validated against the actual requirements and operating environment.

6.3 Timing-budget analysis

Timing is a critical reason to model hardware and software together.

Suppose a hypothetical control function must complete within a total period of \(25\,\mu s\). An initial allocation might be:

Activity

Illustrative budget

Sensor sampling and acquisition

\(4\,\mu s\)

Data validation and preprocessing

\(3\,\mu s\)

Control calculation

\(8\,\mu s\)

Output update

\(3\,\mu s\)

Scheduling, communication, and margin

\(7\,\mu s\)

Total

\(25\,\mu s\)

These numbers are illustrative only. They do not demonstrate that a particular controller meets a real deadline.

A real timing analysis must consider worst-case execution time, interrupt latency, task scheduling, cache and memory effects where relevant, bus contention, peripheral delays, clock tolerances, measurement uncertainty, and required margin.

The general constraint is:

\[ T_{\text{acquisition}}+ T_{\text{processing}}+ T_{\text{actuation}}+ T_{\text{overhead}} \leq T_{\text{deadline}} \]

The engineer must also determine whether the required behavior is periodic, event-driven, or deadline-constrained, and whether a missed deadline creates a safety hazard or merely degrades performance.

6.4 Example: allocating OBD-AI functions

The vehicle interface has protocol and communication constraints. It may experience delayed responses, incomplete messages, or disconnects. The mobile application manages the user session, while backend services handle knowledge retrieval and AI inference.

A possible allocation is:

  • Adapter firmware: Protocol transport, framing, and adapter-level status.
  • Mobile application: Session management, user interface, data validation, and local buffering.
  • Diagnostic service: DTC/PID interpretation, supported-vehicle logic, and structured case generation.
  • Knowledge service: Document indexing, retrieval, metadata management, and source tracking.
  • AI advisory service: Evidence-grounded explanation and structured recommendations.
  • Case service: Audit records, session history, and access-controlled retention.

The design must specify which component is authoritative for vehicle identity, protocol capability, data quality, and diagnostic interpretation. Duplicate ownership creates inconsistent behavior.

6.5 Example: allocating smart inverter functions

A smart inverter needs a clearly separated local control path and supervisory information path.

A possible allocation is:

  • Analog front end: Measurement conditioning and required isolation.
  • ADC and timer peripherals: Deterministic acquisition and synchronization.
  • Real-time processor: Control calculations, operating-state logic, and supervisory coordination.
  • FPGA, where justified: High-speed deterministic processing, synchronized digital logic, or specialized control support.
  • Independent protection circuitry, where required: Protection functions whose independence or response characteristics cannot be adequately assured by the main software path alone.
  • Communications processor or gateway: External protocol handling and monitoring.
  • Remote analytics: Historical analysis, predictive maintenance, and operational reporting.

An FPGA is not automatically safer or faster for every task, and a separate protection circuit is not automatically sufficient for safety. These decisions require quantitative analysis, fault analysis, and verification of the actual architecture.

6.6 Interface Control Documents

The Interface Control Document (ICD) defines the agreed behavior of an interface between components, subsystems, or organizations.

A useful ICD should contain:

  • Interface identifier and owner.
  • Source and destination components.
  • Physical, electrical, logical, or API boundary.
  • Signal or message names.
  • Data types, units, scaling, and valid ranges.
  • Timing, update frequency, and latency expectations.
  • Error detection, timeout, and retry rules.
  • Initialization and shutdown behavior.
  • Versioning and backward-compatibility rules.
  • Security and access-control assumptions.
  • Verification method and acceptance criteria.

Example ICD: OBD-AI diagnostic result

Field

Contract definition

Interface

IF-OBD-DIAG-001

Producer

Diagnostic interpretation service

Consumer

Mobile application

Code

Validated diagnostic code or explicit unsupported-code status

Vehicle context

Identifier and configuration confidence where available

Observations

Measured or reported values with units and validity

Interpretation

Probable explanations, not automatically confirmed failures

Evidence

Source identifiers, versions, and applicable references

Status

Complete, partial, unavailable, or failed

Error behavior

Explicit reason code; no silent conversion of missing data

Verification

Schema validation, positive tests, negative tests, and compatibility tests

Example ICD: smart inverter status message

Field

Contract definition

Interface

IF-INV-STATUS-001

Producer

Local inverter controller

Consumer

HMI or monitoring gateway

Operating state

Enumerated state from the approved state machine

Measurements

Defined quantities with units and validity flags

Fault status

Active, latched, cleared, or unavailable as applicable

Timestamp

Defined time basis and resolution

Version

Message-schema version

Failure behavior

Defined stale-data and communications-loss policy

Verification

Schema tests, interface tests, and integration tests

For inverter interfaces, the ICD must be supplemented with electrical limits, isolation requirements, grounding assumptions, electromagnetic compatibility, and any required grid-interface behavior.

6.7 Hardware–software interface review

Before implementation is considered ready, review each interface across disciplines.

  1. Are electrical and logical levels compatible?
  2. Are units, scaling, signedness, byte order, and numerical precision defined?
  3. Are update rate, latency, jitter, and timeout behavior specified?
  4. Are initialization and shutdown sequences defined?
  5. What happens if the signal, message, sensor, processor, or link fails?
  6. Can the interface be tested independently?
  7. Can both sides identify and reject incompatible versions?
  8. Are security, isolation, and safety assumptions explicit?

Interface failures are often integration failures disguised as software defects. A shared model and a controlled ICD reduce the risk that different teams implement incompatible assumptions.

7. Integrating DDD with MBSE

7.1 Why DDD belongs inside the engineering process

MBSE organizes the system as a whole. DDD organizes the software models and responsibilities that implement selected parts of that system.

For example, the OBD-AI architecture may contain a diagnostic service, retrieval service, AI advisory service, and case-management service. Each has different domain concepts and invariants. DDD can define boundaries, ownership, and communication contracts between them.

However, the physical system may impose constraints that do not naturally appear in the software domain model. An inverter control context, for instance, must respect real-time deadlines, sensor validity, and protection behavior even if the application-level domain model is elegantly designed.

The integration rule is therefore:

Use MBSE to establish the system boundary and engineering constraints; use DDD to organize the software domain models within that boundary.

7.2 OBD-AI bounded contexts

#chatgpt-mermaid-_r_13q_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_13q_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_13q_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_13q_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_13q_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13q_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_13q_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_13q_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_13q_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_13q_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_13q_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_13q_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13q_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13q_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_13q_ p{margin:0;}#chatgpt-mermaid-_r_13q_ .label{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13q_ .cluster-label text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13q_ .cluster-label span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13q_ .cluster-label span p{background-color:transparent;}#chatgpt-mermaid-_r_13q_ .label text,#chatgpt-mermaid-_r_13q_ span{fill:rgb(13, 13, 13);color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13q_ .node rect,#chatgpt-mermaid-_r_13q_ .node circle,#chatgpt-mermaid-_r_13q_ .node ellipse,#chatgpt-mermaid-_r_13q_ .node polygon,#chatgpt-mermaid-_r_13q_ .node path{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_13q_ .rough-node .label text,#chatgpt-mermaid-_r_13q_ .node .label text,#chatgpt-mermaid-_r_13q_ .image-shape .label,#chatgpt-mermaid-_r_13q_ .icon-shape .label{text-anchor:middle;}#chatgpt-mermaid-_r_13q_ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#chatgpt-mermaid-_r_13q_ .rough-node .label,#chatgpt-mermaid-_r_13q_ .node .label,#chatgpt-mermaid-_r_13q_ .image-shape .label,#chatgpt-mermaid-_r_13q_ .icon-shape .label{text-align:center;}#chatgpt-mermaid-_r_13q_ .node.clickable{cursor:pointer;}#chatgpt-mermaid-_r_13q_ .root .anchor path{fill:rgb(143, 143, 143)!important;stroke-width:0;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13q_ .arrowheadPath{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13q_ .edgePath .path{stroke:rgb(143, 143, 143);stroke-width:1px;}#chatgpt-mermaid-_r_13q_ .flowchart-link{stroke:rgb(143, 143, 143);fill:none;}#chatgpt-mermaid-_r_13q_ .edgeLabel{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_13q_ .edgeLabel p{background-color:rgb(252, 252, 252);}#chatgpt-mermaid-_r_13q_ .edgeLabel rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_13q_ .labelBkg{background-color:rgba(252, 252, 252, 0.5);}#chatgpt-mermaid-_r_13q_ .cluster rect{fill:rgb(243, 243, 243);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_13q_ .cluster text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13q_ .cluster span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13q_ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:12px;background:rgb(243, 243, 243);border:1px solid rgba(0, 0, 0, 0.1);border-radius:2px;pointer-events:none;z-index:100;}#chatgpt-mermaid-_r_13q_ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_13q_ rect.text{fill:none;stroke-width:0;}#chatgpt-mermaid-_r_13q_ .icon-shape,#chatgpt-mermaid-_r_13q_ .image-shape{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_13q_ .icon-shape p,#chatgpt-mermaid-_r_13q_ .image-shape p{background-color:rgb(252, 252, 252);padding:2px;}#chatgpt-mermaid-_r_13q_ .icon-shape .label rect,#chatgpt-mermaid-_r_13q_ .image-shape .label rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_13q_ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#chatgpt-mermaid-_r_13q_ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#chatgpt-mermaid-_r_13q_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_13q_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_13q_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_13q_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_13q_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13q_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_13q_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_13q_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_13q_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13q_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_13q_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_13q_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13q_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_13q_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_13q_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13q_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_13q_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_13q_ .node text{font-size:14px;font-weight:600;letter-spacing:normal;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_13q_ .edgeLabels text{font-size:13px;font-weight:600;letter-spacing:-0.08px;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_13q_ .node tspan[font-weight="normal"],#chatgpt-mermaid-_r_13q_ .edgeLabels tspan[font-weight="normal"]{font-weight:600;}#chatgpt-mermaid-_r_13q_ .edgeLabel .label rect{opacity:1;rx:13px;ry:13px;fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-width:1px;}#chatgpt-mermaid-_r_13q_ .node rect,#chatgpt-mermaid-_r_13q_ .node circle,#chatgpt-mermaid-_r_13q_ .node ellipse,#chatgpt-mermaid-_r_13q_ .node polygon,#chatgpt-mermaid-_r_13q_ .node path{fill:rgb(229, 243, 255);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_13q_ .node rect{rx:16px;ry:16px;}#chatgpt-mermaid-_r_13q_ .node.mermaid-decision .label-container{fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-dasharray:2,2;}#chatgpt-mermaid-_r_13q_ .edgePaths .flowchart-link{stroke:rgb(143, 143, 143);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;}#chatgpt-mermaid-_r_13q_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_13q_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}Vehicle InterfaceDiagnostic Session ContextVehicle Data ContextDiagnostic InterpretationContextService Knowledge ContextAI Advisory ContextCase Management ContextFleet Management Context

Suggested contexts

Vehicle Interface Context

Owns adapter discovery, communication-session state, transport errors, and protocol capability.

Vehicle Data Context

Owns validated diagnostic observations, measurement units, validity status, timestamps, and vehicle context.

Diagnostic Interpretation Context

Owns code decoding, supported interpretation rules, diagnostic relationships, and distinctions between observations and hypotheses.

Service Knowledge Context

Owns service-document metadata, versioning, indexing, retrieval, and source provenance.

AI Advisory Context

Owns evidence assembly, model invocation, response validation, uncertainty representation, and the rules governing supported advisory outputs.

Case Management Context

Owns diagnostic-session records, technician notes, audit history, and retention policy.

Fleet Management Context

Owns vehicle groups, service events, fleet reporting, and fleet-level operational analytics.

These boundaries are proposed design choices. They should be revised if discovery reveals different domain ownership or deployment constraints.

7.3 Inverter bounded contexts

A comparable inverter software architecture could include:

  • Measurement Context: Sensor observations, calibration state, validity, and measurement quality.
  • Control Context: Local control algorithms, operating mode, setpoints, and permitted transitions.
  • Protection Context: Fault criteria, protection state, trip records, and reset policy.
  • Configuration Context: Approved parameters, versioning, commissioning, and configuration validation.
  • Telemetry Context: Data packaging, communication, timestamps, and remote status.
  • Maintenance Context: Fault history, maintenance records, and diagnostic procedures.
  • Analytics Context: Historical trends, anomaly detection, and predictive-maintenance suggestions.

The protection and control contexts must have precisely defined interfaces. DDD boundaries are not a justification for distributing time-critical control across unreliable network services.

7.4 Domain events and contracts

A domain event represents something meaningful that has occurred, such as:

  • DiagnosticSessionEstablished
  • DiagnosticDataUnavailable
  • DtcInterpretationCreated
  • EvidencePackageAssembled
  • AdvisoryGenerated
  • InverterReady
  • OperatingLimitExceeded
  • ProtectionEventRecorded
  • RemoteTelemetryUnavailable

Events should be versioned and have clear ownership. They should not be used as vague notifications for every internal function call.

For each event or API, define:

  • Producer and consumer.
  • Event meaning and triggering condition.
  • Schema and version.
  • Timestamp and ordering assumptions.
  • Delivery and duplicate-handling behavior.
  • Error and retry policy.
  • Security and retention requirements.

7.5 Avoiding overengineering

DDD is valuable when domain complexity justifies explicit boundaries. It is not necessary to split a small embedded application into many microservices.

A microcontroller may use modules or components that follow bounded-context principles without running independent services. A small OBD-AI prototype may start as a modular application and later separate services if scale, deployment, security, or team ownership requires it.

The architecture should reflect actual system needs, not a preference for microservices.

8. Behavioral modeling and the relationship between SysML and software BDD

8.1 Three complementary levels

A well-structured model separates three questions.

Level

Primary question

Example

System behavior

What must the complete system do?

Handle a diagnostic session with incomplete vehicle data

Software acceptance behavior

What observable software behavior satisfies the requirement?

Return an explicit unavailable-data status

Implementation behavior

How does the selected software or firmware perform the task?

Validate the response frame, set a validity flag, and emit a status code

SysML activity and state-machine diagrams can describe system and component behavior. Gherkin scenarios can express selected acceptance conditions. Implementation tests verify that the chosen code and hardware behave as intended.

The models should be consistent, but not every SysML action needs a Gherkin scenario, and not every unit test needs its own system-level diagram.

8.2 Example: OBD-AI sequence

Advisory ServiceKnowledge RetrievalDiagnostic ServiceOBD AdapterMobile AppAdvisory ServiceKnowledge RetrievalDiagnostic ServiceOBD AdapterMobile App#chatgpt-mermaid-_r_143_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_143_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_143_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_143_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_143_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_143_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_143_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_143_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_143_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_143_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_143_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_143_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_143_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_143_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_143_ p{margin:0;}#chatgpt-mermaid-_r_143_ .actor{stroke:rgb(83, 154, 248);fill:rgb(222, 234, 251);stroke-width:1;}#chatgpt-mermaid-_r_143_ rect.actor.outer-path[data-look="neo"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_143_ rect.note[data-look="neo"]{stroke:rgb(107, 198, 127);fill:rgb(243, 243, 243);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_143_ text.actor>tspan{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_143_ .actor-line{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_143_ .innerArc{stroke-width:1.5;stroke-dasharray:none;}#chatgpt-mermaid-_r_143_ .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_143_ .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_143_ [id$="-arrowhead"] path{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_143_ .sequenceNumber{fill:#707070;}#chatgpt-mermaid-_r_143_ [id$="-sequencenumber"]{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_143_ [id$="-crosshead"] path{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_143_ .messageText{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_143_ .labelBox{stroke:rgba(0, 0, 0, 0.1);fill:rgb(252, 252, 252);filter:none;}#chatgpt-mermaid-_r_143_ .labelText,#chatgpt-mermaid-_r_143_ .labelText>tspan{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_143_ .loopText,#chatgpt-mermaid-_r_143_ .loopText>tspan{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_143_ .sectionTitle,#chatgpt-mermaid-_r_143_ .sectionTitle>tspan{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_143_ .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:rgba(0, 0, 0, 0.1);fill:rgba(0, 0, 0, 0.1);}#chatgpt-mermaid-_r_143_ .note{stroke:rgb(107, 198, 127);fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_143_ .noteText,#chatgpt-mermaid-_r_143_ .noteText>tspan{fill:rgb(13, 13, 13);stroke:none;font-weight:normal;}#chatgpt-mermaid-_r_143_ .activation0{fill:rgb(243, 243, 243);stroke:hsl(0, 0%, 85.2941176471%);}#chatgpt-mermaid-_r_143_ .activation1{fill:rgb(243, 243, 243);stroke:hsl(0, 0%, 85.2941176471%);}#chatgpt-mermaid-_r_143_ .activation2{fill:rgb(243, 243, 243);stroke:hsl(0, 0%, 85.2941176471%);}#chatgpt-mermaid-_r_143_ .actorPopupMenu{position:absolute;}#chatgpt-mermaid-_r_143_ .actorPopupMenuPanel{position:absolute;fill:rgb(222, 234, 251);box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#chatgpt-mermaid-_r_143_ .actor-man circle,#chatgpt-mermaid-_r_143_ line{fill:rgb(222, 234, 251);stroke-width:2px;}#chatgpt-mermaid-_r_143_ g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_143_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_143_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_143_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_143_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_143_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_143_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_143_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_143_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_143_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_143_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_143_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_143_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_143_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_143_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_143_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_143_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_143_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_143_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}TechnicianStart diagnostic sessionEstablish connectionSession statusRequest DTC interpretationRequest supported diagnostic dataData response or errorValidated diagnostic packageRetrieve relevant service evidenceDocuments and provenanceStructured evidence packageAdvisory with limitationsValidated resultFindings and next stepsTechnician

The sequence clarifies which component owns each operation and where errors must be handled. It should be extended with timeout branches, malformed messages, cancellation, unavailable services, and authorization failures before it is used as an implementation contract.

8.3 Example: inverter control sequence

Monitoring GatewayPower StageGate DriverProtection LogicReal-Time ControllerSensors and ADCMonitoring GatewayPower StageGate DriverProtection LogicReal-Time ControllerSensors and ADC#chatgpt-mermaid-_r_14c_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_14c_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_14c_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_14c_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_14c_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14c_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_14c_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_14c_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_14c_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_14c_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_14c_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_14c_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14c_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14c_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_14c_ p{margin:0;}#chatgpt-mermaid-_r_14c_ .actor{stroke:rgb(83, 154, 248);fill:rgb(222, 234, 251);stroke-width:1;}#chatgpt-mermaid-_r_14c_ rect.actor.outer-path[data-look="neo"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14c_ rect.note[data-look="neo"]{stroke:rgb(107, 198, 127);fill:rgb(243, 243, 243);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14c_ text.actor>tspan{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_14c_ .actor-line{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14c_ .innerArc{stroke-width:1.5;stroke-dasharray:none;}#chatgpt-mermaid-_r_14c_ .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14c_ .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14c_ [id$="-arrowhead"] path{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14c_ .sequenceNumber{fill:#707070;}#chatgpt-mermaid-_r_14c_ [id$="-sequencenumber"]{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14c_ [id$="-crosshead"] path{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14c_ .messageText{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_14c_ .labelBox{stroke:rgba(0, 0, 0, 0.1);fill:rgb(252, 252, 252);filter:none;}#chatgpt-mermaid-_r_14c_ .labelText,#chatgpt-mermaid-_r_14c_ .labelText>tspan{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_14c_ .loopText,#chatgpt-mermaid-_r_14c_ .loopText>tspan{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_14c_ .sectionTitle,#chatgpt-mermaid-_r_14c_ .sectionTitle>tspan{fill:rgb(13, 13, 13);stroke:none;}#chatgpt-mermaid-_r_14c_ .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:rgba(0, 0, 0, 0.1);fill:rgba(0, 0, 0, 0.1);}#chatgpt-mermaid-_r_14c_ .note{stroke:rgb(107, 198, 127);fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_14c_ .noteText,#chatgpt-mermaid-_r_14c_ .noteText>tspan{fill:rgb(13, 13, 13);stroke:none;font-weight:normal;}#chatgpt-mermaid-_r_14c_ .activation0{fill:rgb(243, 243, 243);stroke:hsl(0, 0%, 85.2941176471%);}#chatgpt-mermaid-_r_14c_ .activation1{fill:rgb(243, 243, 243);stroke:hsl(0, 0%, 85.2941176471%);}#chatgpt-mermaid-_r_14c_ .activation2{fill:rgb(243, 243, 243);stroke:hsl(0, 0%, 85.2941176471%);}#chatgpt-mermaid-_r_14c_ .actorPopupMenu{position:absolute;}#chatgpt-mermaid-_r_14c_ .actorPopupMenuPanel{position:absolute;fill:rgb(222, 234, 251);box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#chatgpt-mermaid-_r_14c_ .actor-man circle,#chatgpt-mermaid-_r_14c_ line{fill:rgb(222, 234, 251);stroke-width:2px;}#chatgpt-mermaid-_r_14c_ g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_14c_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_14c_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_14c_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_14c_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_14c_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14c_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_14c_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_14c_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_14c_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14c_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_14c_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_14c_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14c_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_14c_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_14c_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14c_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_14c_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14c_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}loop[Each control cycle]Sampled measurementsValidate and calculate controlOperating conditionsPermit or protective statusAuthorized switching updateGate-drive actionElectrical responseStatus and telemetry

This is a conceptual sequence. Actual switching logic, hardware interlocks, sampling synchronization, dead-time handling, and protection paths depend on the inverter topology and must be specified separately.

8.4 Mapping Gherkin scenarios to verification tests

Gherkin is a structured natural-language format used by BDD tooling. The official Cucumber reference documents its keywords and scenario structure. Cucumber Gherkin reference.

A scenario should be connected to a real test implementation where practical. For example:

Scenario

Test layer

Possible test environment

OBD data response is valid

Unit and component

Mock adapter and decoder

Missing OBD data is reported

Integration

Simulated transport failure

Advisory cites retrieved evidence

Service integration

Controlled document corpus and model stub

Inverter startup is rejected on sensor failure

Firmware integration

Processor simulation or hardware bench

Protection response meets timing

Hardware/firmware verification

Timing instrumentation and appropriate test rig

Remote link loss does not disable local control

System integration

Network fault injection and HIL

The test layer must match the claim. A unit test cannot by itself prove a complete inverter protection path meets its physical response requirements.

8.5 Test doubles, simulation, and physical evidence

Software BDD is especially useful for repeatable behavioral tests, but it should be combined with engineering methods that exercise real interfaces.

For OBD-AI:

  • Mock vehicle responses for unit tests.
  • Protocol fixtures for decoder tests.
  • Simulated adapter failures for robustness tests.
  • Controlled service-document collections for retrieval tests.
  • Ground-truth diagnostic cases for evaluating AI output.
  • Vehicle or bench testing for final interface validation.

For smart inverters:

  • Control-algorithm simulation.
  • Processor-in-the-loop testing where appropriate.
  • Hardware-in-the-loop testing.
  • Sensor and communications fault injection.
  • Bench measurements with suitable instrumentation.
  • Electrical system tests under approved procedures.

A simulation result is evidence for the model and assumptions exercised. It does not automatically prove the behavior of the physical system under all conditions.

9. Verification, validation, and engineering evidence

9.1 Verification versus validation

These terms describe different questions.

  • Verification: Does the system or component satisfy its specified requirements?
  • Validation: Does the resulting system meet the stakeholder's intended need in its operational context?

For OBD-AI, verification might demonstrate that an unavailable diagnostic value is represented correctly. Validation would examine whether technicians can use the system to investigate real diagnostic cases effectively and without being misled by unsupported conclusions.

For a smart inverter, verification might demonstrate a defined control-loop deadline under specified conditions. Validation would establish that the complete inverter performs its intended role in the target installation and operating environment.

9.2 Verification hierarchy

Level 1 — Requirements and model checks

Requirement quality, consistency, traceability, interface completeness, and model integrity.

Level 2 — Unit and component verification

Software functions, firmware modules, drivers, protocol decoders, and hardware subassemblies.

Level 3 — Subsystem integration

Communication between embedded software, sensors, interfaces, applications, and services.

Level 4 — System integration

End-to-end operation using representative hardware, software, and external interfaces.

Level 5 — Operational validation

Representative users, real-world workflows, operating conditions, and acceptance criteria.

The sequence is not strictly linear. Hardware-in-the-loop, simulation, static analysis, security testing, and safety analysis may occur at several levels.

9.3 Verification matrix: OBD-AI

ID

Requirement objective

Verification method

Example evidence

REQ-OBD-001

Detect supported adapter connection status

Test

Connection test log

REQ-OBD-002

Validate incoming diagnostic data

Unit/integration test

Test results and malformed-frame fixtures

REQ-OBD-003

Represent unavailable data explicitly

Negative test

Assertion and execution report

REQ-OBD-004

Preserve vehicle context with interpretation

Integration test

Case record comparison

REQ-OBD-005

Associate advisory claims with evidence

Evaluation test

Evidence coverage report

REQ-OBD-006

Preserve diagnostic case provenance

Integration test

Audit record inspection

REQ-OBD-007

Enforce authorized access to stored cases

Security test

Access-control test report

REQ-OBD-008

Handle service unavailability gracefully

Fault-injection test

Recovery and error logs

These IDs are proposed examples. They must be created as model elements and linked to the actual use cases, components, and verification cases.

AI-specific quality measurements

An AI diagnostic system needs more than conventional software pass/fail tests. Suggested evaluation measures include:

  • Evidence-supported claim rate.
  • Unsupported-claim rate.
  • Correct abstention when evidence is insufficient.
  • Retrieval relevance and coverage.
  • Citation or source-reference correctness.
  • Diagnostic consistency across equivalent cases.
  • Robustness to incomplete, contradictory, or malformed inputs.
  • Response latency and resource cost.
  • Performance differences across supported vehicle categories and diagnostic tasks.

Define the denominator and scoring procedure for every metric. A high retrieval score alone does not prove that the generated diagnosis is correct.

9.4 Verification matrix: smart inverter

ID

Requirement objective

Verification method

Example evidence

REQ-INV-001

Validate required sensor inputs

Test and calibration evidence

Sensor test results

REQ-INV-002

Meet the defined control deadline

Timing measurement and analysis

Execution-time and latency report

REQ-INV-003

Reject startup with an invalid required input

Fault-injection test

State transition and event log

REQ-INV-004

Execute the specified protective response

Bench or HIL test

Instrumented response record

REQ-INV-005

Handle remote communication loss as specified

Integration test

Fault-injection report

REQ-INV-006

Validate configuration before operation

Software test and commissioning test

Configuration-validation evidence

REQ-INV-007

Maintain required behavior across supported modes

State and system tests

Mode-transition test report

REQ-INV-008

Record relevant fault events

Integration test

Event log and timestamp review

Some requirements need multiple forms of evidence. For example, control-loop timing may require static analysis, worst-case execution-time analysis, measurement, and testing across defined operating conditions.

9.5 Requirements coverage

A simple verification coverage measure can be defined as:

\[ C_v=\frac{N_{\text{approved requirements with accepted evidence}}} {N_{\text{approved requirements requiring verification}}}\times100\% \]

This is a management indicator, not proof that the system is correct. A project could have complete coverage while using weak tests that do not adequately verify the requirements.

Report at least:

  • Requirements with no verification case.
  • Verification cases with no linked requirement.
  • Tests that exist but have not been executed.
  • Failed tests.
  • Tests whose evidence is stale relative to the current implementation.
  • Requirements whose verification evidence has not been formally accepted.

9.6 Change-impact analysis

Suppose the OBD adapter's response format changes. The engineering team should identify affected:

  1. Interface requirements.
  2. Adapter and protocol models.
  3. Data-validation logic.
  4. Diagnostic session use cases.
  5. API or message contracts.
  6. Unit and integration tests.
  7. Mobile application compatibility.
  8. Case-history records and analytics.
  9. Documentation and release notes.

For the inverter, a sensor-range change might affect the analog front end, ADC configuration, scaling calculations, plausibility checks, control algorithms, protection thresholds, calibration procedures, and HIL test scenarios.

Use EA relationships to discover candidate impacts, but require engineering judgment to determine which changes actually demand redesign or retesting.

10. Engineering toolchain and DevOps integration

10.1 Establish clear ownership of artifacts

A practical engineering environment may include:

Artifact

Recommended system of record

System requirements and architecture

Sparx EA model repository

Firmware and application source

Version-control repository

Automated software tests

Test framework and version-controlled test suite

Circuit schematics and PCB design

Electrical CAD repository

Control and power-system simulation

Appropriate simulation environment

Build outputs and release packages

Controlled artifact repository

HIL test data

Test-management system or evidence repository

Issue and defect records

Project issue tracker

Approved baselines and review decisions

Controlled engineering records

Avoid maintaining several editable copies of the same requirement without a defined synchronization and approval process.

10.2 Proposed CI pipeline

#chatgpt-mermaid-_r_14l_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_14l_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_14l_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_14l_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_14l_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14l_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_14l_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_14l_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_14l_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_14l_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_14l_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_14l_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14l_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14l_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_14l_ p{margin:0;}#chatgpt-mermaid-_r_14l_ .label{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14l_ .cluster-label text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14l_ .cluster-label span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14l_ .cluster-label span p{background-color:transparent;}#chatgpt-mermaid-_r_14l_ .label text,#chatgpt-mermaid-_r_14l_ span{fill:rgb(13, 13, 13);color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14l_ .node rect,#chatgpt-mermaid-_r_14l_ .node circle,#chatgpt-mermaid-_r_14l_ .node ellipse,#chatgpt-mermaid-_r_14l_ .node polygon,#chatgpt-mermaid-_r_14l_ .node path{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_14l_ .rough-node .label text,#chatgpt-mermaid-_r_14l_ .node .label text,#chatgpt-mermaid-_r_14l_ .image-shape .label,#chatgpt-mermaid-_r_14l_ .icon-shape .label{text-anchor:middle;}#chatgpt-mermaid-_r_14l_ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#chatgpt-mermaid-_r_14l_ .rough-node .label,#chatgpt-mermaid-_r_14l_ .node .label,#chatgpt-mermaid-_r_14l_ .image-shape .label,#chatgpt-mermaid-_r_14l_ .icon-shape .label{text-align:center;}#chatgpt-mermaid-_r_14l_ .node.clickable{cursor:pointer;}#chatgpt-mermaid-_r_14l_ .root .anchor path{fill:rgb(143, 143, 143)!important;stroke-width:0;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14l_ .arrowheadPath{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14l_ .edgePath .path{stroke:rgb(143, 143, 143);stroke-width:1px;}#chatgpt-mermaid-_r_14l_ .flowchart-link{stroke:rgb(143, 143, 143);fill:none;}#chatgpt-mermaid-_r_14l_ .edgeLabel{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_14l_ .edgeLabel p{background-color:rgb(252, 252, 252);}#chatgpt-mermaid-_r_14l_ .edgeLabel rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_14l_ .labelBkg{background-color:rgba(252, 252, 252, 0.5);}#chatgpt-mermaid-_r_14l_ .cluster rect{fill:rgb(243, 243, 243);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_14l_ .cluster text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14l_ .cluster span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14l_ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:12px;background:rgb(243, 243, 243);border:1px solid rgba(0, 0, 0, 0.1);border-radius:2px;pointer-events:none;z-index:100;}#chatgpt-mermaid-_r_14l_ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14l_ rect.text{fill:none;stroke-width:0;}#chatgpt-mermaid-_r_14l_ .icon-shape,#chatgpt-mermaid-_r_14l_ .image-shape{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_14l_ .icon-shape p,#chatgpt-mermaid-_r_14l_ .image-shape p{background-color:rgb(252, 252, 252);padding:2px;}#chatgpt-mermaid-_r_14l_ .icon-shape .label rect,#chatgpt-mermaid-_r_14l_ .image-shape .label rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_14l_ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#chatgpt-mermaid-_r_14l_ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#chatgpt-mermaid-_r_14l_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_14l_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_14l_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_14l_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_14l_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14l_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_14l_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_14l_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_14l_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14l_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_14l_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_14l_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14l_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_14l_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_14l_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14l_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_14l_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14l_ .node text{font-size:14px;font-weight:600;letter-spacing:normal;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_14l_ .edgeLabels text{font-size:13px;font-weight:600;letter-spacing:-0.08px;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_14l_ .node tspan[font-weight="normal"],#chatgpt-mermaid-_r_14l_ .edgeLabels tspan[font-weight="normal"]{font-weight:600;}#chatgpt-mermaid-_r_14l_ .edgeLabel .label rect{opacity:1;rx:13px;ry:13px;fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-width:1px;}#chatgpt-mermaid-_r_14l_ .node rect,#chatgpt-mermaid-_r_14l_ .node circle,#chatgpt-mermaid-_r_14l_ .node ellipse,#chatgpt-mermaid-_r_14l_ .node polygon,#chatgpt-mermaid-_r_14l_ .node path{fill:rgb(229, 243, 255);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_14l_ .node rect{rx:16px;ry:16px;}#chatgpt-mermaid-_r_14l_ .node.mermaid-decision .label-container{fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-dasharray:2,2;}#chatgpt-mermaid-_r_14l_ .edgePaths .flowchart-link{stroke:rgb(143, 143, 143);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;}#chatgpt-mermaid-_r_14l_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14l_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}Approved Model BaselineChange RequestVersion-Controlled SourceBuild and Static AnalysisUnit TestsIntegration TestsSimulation or HILEvidence CollectionEngineering ReviewApproved Releasefeedback and defects

This diagram illustrates a proposed workflow, not an automatically provided EA capability. The team must implement repository integration, build orchestration, traceability checks, and evidence collection with its selected tools.

10.3 Model governance and versioning

Every approved model baseline should identify:

  • Model version or baseline identifier.
  • Approval date and responsible reviewers.
  • Requirements status.
  • Architecture decisions.
  • Open issues and accepted risks.
  • Referenced source-code commits.
  • Relevant interface versions.
  • Test suite versions and execution results.
  • Simulation or HIL configurations.
  • Known limitations and deferred requirements.

If a model element is modified after a baseline, the project should be able to determine whether the change affects an approved requirement, a released product, or an existing verification result.

10.4 Automated consistency checks

A useful model-quality pipeline can detect:

  • Requirements without unique IDs.
  • Approved requirements without verification methods.
  • Requirements with no downstream design allocation.
  • Components with no identified owner.
  • Interfaces without producer or consumer definitions.
  • Verification cases with no requirement link.
  • Unresolved high-priority defects.
  • Stale implementation or test references.
  • Unapproved changes to controlled baselines.

Not every rule can be enforced through built-in EA features alone. Some checks may require EA validation facilities, scripts, API-based extraction, external model queries, or custom reports.

10.5 AI-assisted engineering with human review

AI can help draft requirement candidates, propose test scenarios, summarize model changes, and identify possible missing relationships. However, AI-generated engineering content should be treated as a proposal until reviewed by the responsible engineer.

For example, an AI assistant could propose a Gherkin scenario for sensor failure. A controls engineer must confirm that the scenario reflects the actual safety requirements and hardware architecture before it becomes an approved acceptance test.

The same principle applies to generated architecture diagrams, ICDs, timing analyses, and test procedures. Automated generation is not equivalent to engineering approval.

11. Standards, safety, cybersecurity, and compliance

11.1 Standards strategy

Standards must be selected according to the product's intended use, jurisdiction, installation context, and contractual obligations. The following list identifies relevant families and areas for investigation; it is not a declaration of compliance.

Area

Standards or guidance to investigate

Application

Systems and software lifecycle

ISO/IEC/IEEE 15288; ISO/IEC/IEEE 12207

System and software lifecycle processes

Requirements engineering

ISO/IEC/IEEE 29148

Requirements processes and specification quality

Systems modeling

OMG SysML

System structure, behavior, requirements, and constraints

Automotive functional safety

ISO 26262, where applicable

Safety-related automotive electrical/electronic systems

Road-vehicle cybersecurity

ISO/SAE 21434, where applicable

Automotive cybersecurity engineering

Industrial cybersecurity

IEC 62443, where applicable

Industrial automation and control-system security

Power electronic converter safety

Applicable IEC 62477 series requirements

Safety considerations for power electronic converter systems

Grid-interconnected inverter requirements

Applicable IEEE 1547 and UL 1741 editions, where relevant

Interconnection and inverter/converter requirements in applicable markets

Power quality

Applicable IEEE 519 or jurisdiction-specific requirements

Harmonic and power-quality considerations

Software security

Applicable secure-development and vulnerability-management guidance

Secure design, testing, maintenance, and response

The applicable editions, amendments, certifications, and regional requirements must be verified with the relevant standards bodies, certification organizations, and authorities having jurisdiction. Not every standard in the table applies to every OBD-AI or inverter implementation.

11.2 Functional safety and fault handling

For safety-relevant functions, use an explicit hazard and risk process. Identify hazardous situations, determine required risk reduction, allocate safety requirements, and verify the resulting design.

For a smart inverter, relevant concerns may include:

  • Erroneous or missing sensor signals.
  • Failure to detect a hazardous condition.
  • Unintended switching or actuation.
  • Control software lockup.
  • Common-cause failures between control and protection.
  • Incorrect configuration or calibration.
  • Loss of auxiliary power.
  • Communication failures and stale commands.

The appropriate response depends on the actual inverter architecture and hazards. A generic software test cannot establish the adequacy of an electrical protection design.

For OBD-AI, the risks are different but still significant. An incorrect advisory could lead to unnecessary repairs or unsafe maintenance decisions. The product should communicate uncertainty, distinguish a diagnostic code from a confirmed failed component, and direct users to suitable service procedures where needed.

11.3 Cybersecurity and data protection

For both reference systems, consider:

  • Authentication and authorization.
  • Secure update and configuration mechanisms.
  • Interface hardening.
  • Secrets and key management.
  • Input validation.
  • Logging and auditability.
  • Dependency and vulnerability management.
  • Recovery from compromised or corrupted data.
  • Access controls for diagnostic and operational records.

OBD-AI may retain vehicle-related and customer information. Its design should define what is collected, why it is collected, who can access it, how long it is retained, and how it can be deleted according to applicable policy and law.

A smart inverter's communication and update interfaces require security controls appropriate to the product's exposure and operational role. Remote monitoring should not silently acquire authority to override local protection requirements.

11.4 AI assurance for OBD-AI

An AI advisory system should have explicit quality and failure-handling requirements.

Recommended controls include:

  1. Ground answers in relevant, versioned service information where available.
  2. Preserve evidence provenance.
  3. Separate observed facts, retrieved references, and generated hypotheses.
  4. Detect insufficient or contradictory evidence.
  5. Permit abstention instead of forcing a diagnosis.
  6. Evaluate against controlled test cases and documented ground truth.
  7. Test prompt-injection and malicious content in retrieved documents.
  8. Version models, prompts, retrieval configuration, and knowledge sources.
  9. Log the evidence and configuration needed to investigate an output.
  10. Maintain human review for consequential maintenance decisions.

For the smart inverter reference architecture, cloud AI may support historical analytics or maintenance recommendations. It is not assumed to be part of the fast protection loop.

12. A practical 12-week implementation roadmap

The roadmap below is a proposed pilot for a small multidisciplinary team. It is not a universal project schedule; hardware procurement, certification, detailed control design, and production qualification may require substantially longer.

Weeks 1–2

Discovery and scope

Identify stakeholders, operational scenarios, system boundaries, assumptions, risks, and candidate requirements.

Deliverables: scope statement, context model, initial use cases, requirements plan.

Weeks 3–4

Architecture and modeling

Create the EA package structure, requirements hierarchy, logical architecture, interface inventory, and initial behavior models.

Deliverables: model baseline v0.1, architecture diagrams, initial traceability.

Weeks 5–6

Allocation and interface definition

Allocate functions across hardware and software. Define ICDs, timing constraints, fault behavior, and verification strategy.

Deliverables: allocation matrix, interface specifications, risk review.

Weeks 7–8

Behavior and test development

Develop Gherkin scenarios, unit-test plans, integration tests, simulation cases, and verification mappings.

Deliverables: executable test candidates, verification matrix, test fixtures.

Weeks 9–10

Prototype integration

Implement a narrow end-to-end slice and verify key interfaces. Use simulated inputs or bench hardware appropriate to the selected prototype.

Deliverables: integrated prototype, automated results, defect list.

Weeks 11–12

Review, baseline, and next-phase plan

Evaluate requirements coverage, unresolved risks, test evidence, architecture quality, and project readiness.

Deliverables: approved pilot baseline, lessons learned, prioritized implementation plan.

12.1 Select a narrow pilot

For OBD-AI, a suitable pilot is:

  • One supported diagnostic interface.
  • One defined diagnostic acquisition workflow.
  • A controlled set of supported DTC cases.
  • One service-document retrieval path.
  • One evidence-grounded advisory output.
  • One persistent diagnostic record.
  • Automated positive and negative tests.

For a smart inverter, a suitable pilot is:

  • One defined operating mode.
  • A representative controller and sensor interface.
  • A modeled startup and shutdown sequence.
  • One selected fault-handling behavior.
  • A simulation or bench verification path.
  • A traceable requirement-to-test baseline.

Do not begin by modeling every future capability. The pilot should prove the engineering process on a complete, bounded slice of the system.

12.2 Suggested project roles

Role

Responsibility

Systems engineer

Requirements, architecture, traceability, integration

Hardware engineer

Electronics, sensors, power stage, physical interfaces

Embedded engineer

Drivers, RTOS, real-time behavior, firmware integration

Software architect

Application and service architecture, contracts, domain boundaries

Test engineer

Verification strategy, test design, evidence management

Domain specialist

Automotive diagnostics or power-conversion engineering

Security specialist

Threat analysis, secure interfaces, vulnerability management

Product owner

Stakeholder priorities, scope, acceptance, and commercial fit

In a small organization, one person may hold several roles. Responsibilities still need to be explicit, especially for independent review of safety-relevant decisions.

13. Key performance indicators for the engineering process

A successful MBSE initiative should be evaluated through engineering outcomes, not by counting diagrams.

13.1 Suggested KPIs

KPI

Definition

Why it matters

Requirement completeness

Approved requirements with defined verification methods

Indicates whether requirements are ready for verification

Traceability coverage

Approved requirements linked to relevant architecture and verification elements

Reveals gaps in the engineering thread

Change-impact response time

Time needed to identify affected elements after a proposed change

Measures the usefulness of model relationships

Interface defect rate

Defects attributed to misunderstood or incompatible interfaces

Indicates the quality of interface definition and integration

Test automation rate

Applicable regression tests executed automatically

Measures repeatability, not test adequacy

Defect escape rate

Defects discovered after the intended verification stage

Indicates gaps in verification effectiveness

Timing margin

Measured or analyzed deadline margin under specified conditions

Supports real-time feasibility assessment

Model freshness

Time since controlled artifacts and model links were reconciled

Helps prevent stale traceability

Evidence acceptance rate

Verification results accepted against defined criteria

Indicates evidence quality

Rework effort

Engineering effort spent correcting preventable design or integration errors

Helps evaluate the process's practical value

Define each KPI's measurement method and target before collecting results. Do not assume that a single numeric target is appropriate across prototype, research, and production phases.

13.2 Avoid misleading metrics

Several indicators can look positive while the engineering process remains weak.

For example:

  • A model can contain hundreds of diagrams without useful traceability.
  • All requirements can have test links while the tests fail to exercise important conditions.
  • A high automated-test percentage can coexist with poor coverage of hardware failure modes.
  • A fast change-impact report can omit relationships that were never modeled.

Combine quantitative metrics with design reviews, technical risk assessments, and representative verification evidence.

14. Common engineering mistakes and how to prevent them

14.1 Treating diagrams as the deliverable

Problem: The team produces attractive diagrams but does not maintain their relationships to requirements, interfaces, and tests.

Remedy: Define the engineering question each diagram answers. Give important elements stable identifiers, assign owners, and connect the elements to the appropriate model relationships.

14.2 Confusing structural BDD with Behavior-Driven Development

Problem: The team assumes a SysML Block Definition Diagram is an executable behavior specification.

Remedy: Use structural models for system composition and relationships. Use Gherkin scenarios and automated tests for observable behavior. Connect the two through requirements and verification relationships.

14.3 Starting from the technology rather than the need

Problem: The team starts with a preferred MCU, FPGA, RAG framework, or cloud platform before establishing system constraints.

Remedy: Define stakeholder needs, operating scenarios, measurable requirements, and architectural constraints before finalizing technology choices.

14.4 Using DDD as a substitute for system architecture

Problem: Software bounded contexts are created without modeling physical interfaces, timing, or failure behavior.

Remedy: Define the system architecture first, then use DDD to organize software responsibilities inside the approved system boundary.

14.5 Putting real-time control in an unreliable remote service

Problem: A cloud service is placed in a fast control or protection path without demonstrating that its latency, availability, and failure behavior meet the requirements.

Remedy: Keep required local control and protection functions within a suitable local architecture. Use remote services for functions whose timing and failure consequences permit them.

14.6 Treating AI output as verified truth

Problem: An AI-generated automotive diagnosis is presented as a confirmed mechanical failure, or an AI-generated engineering suggestion is accepted without review.

Remedy: Preserve evidence provenance, represent uncertainty, test abstention behavior, and require qualified review for consequential decisions.

14.7 Ignoring hardware timing until integration

Problem: The firmware appears correct in a unit test but misses a deadline when sensor acquisition, scheduling, communication, and actuation are combined.

Remedy: Allocate and analyze timing budgets early. Validate the complete path with appropriate simulation, instrumentation, and hardware testing.

14.8 Maintaining duplicate sources of truth

Problem: Requirements, interface definitions, and design assumptions diverge across spreadsheets, PDFs, EA, source comments, and test scripts.

Remedy: Establish ownership, controlled references, baselines, and a documented process for changing authoritative artifacts.

14.9 Claiming compliance from modeling alone

Problem: A complete-looking SysML model is treated as evidence that a product meets safety or regulatory requirements.

Remedy: Treat models as part of the engineering evidence. Perform the required analyses, tests, inspections, reviews, and certification activities for the actual product and jurisdiction.

15. Strategic implementation by IAS-Research.com, KeenComputer.com, and KeenDirect.com

The three organizations can form a complementary research-to-deployment capability. The roles should remain distinct so that research, system design, implementation, and commercial operation are coordinated without being confused.

IAS-Research.com — Research and systems engineering

Role: Define, model, analyze, and validate the engineering approach.

  • MBSE and SysML architecture.
  • Hardware–software co-design and allocation studies.
  • DDD and software architecture research.
  • AI/ML, RAG, embedded Linux, RTOS, FPGA, and control-system research.
  • Requirements engineering, technical trade studies, and verification strategy.
  • Research white papers, prototypes, and technical feasibility assessments.

KeenComputer.com — Engineering implementation and managed services

Role: Build, integrate, test, deploy, and maintain the solution.

  • Embedded and application software development.
  • API, cloud, and database integration.
  • DevOps, CI/CD, deployment automation, and monitoring.
  • Security hardening and operational support.
  • Test automation and integration assistance.
  • Prototype development and lifecycle maintenance.

KeenDirect.com — Commercialization and digital operations

Role: Package, present, distribute, and support commercial offerings.

  • Product and service catalogues.
  • Ecommerce and customer-facing service portals.
  • Technical product documentation and knowledge delivery.
  • Online ordering and service-request workflows.
  • Customer feedback, product information, and support operations.
  • Commercial packaging for reusable engineering solutions.

These are proposed strategic roles, not claims that every capability is already operational or certified.

15.1 A joint research-to-product workflow

#chatgpt-mermaid-_r_14u_{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;fill:rgb(13, 13, 13);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#chatgpt-mermaid-_r_14u_ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_14u_ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#chatgpt-mermaid-_r_14u_ .error-icon{fill:rgb(243, 243, 243);}#chatgpt-mermaid-_r_14u_ .error-text{fill:rgb(13, 13, 13);stroke:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14u_ .edge-thickness-normal{stroke-width:1px;}#chatgpt-mermaid-_r_14u_ .edge-thickness-thick{stroke-width:3.5px;}#chatgpt-mermaid-_r_14u_ .edge-pattern-solid{stroke-dasharray:0;}#chatgpt-mermaid-_r_14u_ .edge-thickness-invisible{stroke-width:0;fill:none;}#chatgpt-mermaid-_r_14u_ .edge-pattern-dashed{stroke-dasharray:3;}#chatgpt-mermaid-_r_14u_ .edge-pattern-dotted{stroke-dasharray:2;}#chatgpt-mermaid-_r_14u_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14u_ .marker.cross{stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14u_ svg{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:16px;}#chatgpt-mermaid-_r_14u_ p{margin:0;}#chatgpt-mermaid-_r_14u_ .label{font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14u_ .cluster-label text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14u_ .cluster-label span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14u_ .cluster-label span p{background-color:transparent;}#chatgpt-mermaid-_r_14u_ .label text,#chatgpt-mermaid-_r_14u_ span{fill:rgb(13, 13, 13);color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14u_ .node rect,#chatgpt-mermaid-_r_14u_ .node circle,#chatgpt-mermaid-_r_14u_ .node ellipse,#chatgpt-mermaid-_r_14u_ .node polygon,#chatgpt-mermaid-_r_14u_ .node path{fill:rgb(222, 234, 251);stroke:rgb(83, 154, 248);stroke-width:1px;}#chatgpt-mermaid-_r_14u_ .rough-node .label text,#chatgpt-mermaid-_r_14u_ .node .label text,#chatgpt-mermaid-_r_14u_ .image-shape .label,#chatgpt-mermaid-_r_14u_ .icon-shape .label{text-anchor:middle;}#chatgpt-mermaid-_r_14u_ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#chatgpt-mermaid-_r_14u_ .rough-node .label,#chatgpt-mermaid-_r_14u_ .node .label,#chatgpt-mermaid-_r_14u_ .image-shape .label,#chatgpt-mermaid-_r_14u_ .icon-shape .label{text-align:center;}#chatgpt-mermaid-_r_14u_ .node.clickable{cursor:pointer;}#chatgpt-mermaid-_r_14u_ .root .anchor path{fill:rgb(143, 143, 143)!important;stroke-width:0;stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14u_ .arrowheadPath{fill:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14u_ .edgePath .path{stroke:rgb(143, 143, 143);stroke-width:1px;}#chatgpt-mermaid-_r_14u_ .flowchart-link{stroke:rgb(143, 143, 143);fill:none;}#chatgpt-mermaid-_r_14u_ .edgeLabel{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_14u_ .edgeLabel p{background-color:rgb(252, 252, 252);}#chatgpt-mermaid-_r_14u_ .edgeLabel rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_14u_ .labelBkg{background-color:rgba(252, 252, 252, 0.5);}#chatgpt-mermaid-_r_14u_ .cluster rect{fill:rgb(243, 243, 243);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_14u_ .cluster text{fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14u_ .cluster span{color:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14u_ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";font-size:12px;background:rgb(243, 243, 243);border:1px solid rgba(0, 0, 0, 0.1);border-radius:2px;pointer-events:none;z-index:100;}#chatgpt-mermaid-_r_14u_ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:rgb(13, 13, 13);}#chatgpt-mermaid-_r_14u_ rect.text{fill:none;stroke-width:0;}#chatgpt-mermaid-_r_14u_ .icon-shape,#chatgpt-mermaid-_r_14u_ .image-shape{background-color:rgb(252, 252, 252);text-align:center;}#chatgpt-mermaid-_r_14u_ .icon-shape p,#chatgpt-mermaid-_r_14u_ .image-shape p{background-color:rgb(252, 252, 252);padding:2px;}#chatgpt-mermaid-_r_14u_ .icon-shape .label rect,#chatgpt-mermaid-_r_14u_ .image-shape .label rect{opacity:0.5;background-color:rgb(252, 252, 252);fill:rgb(252, 252, 252);}#chatgpt-mermaid-_r_14u_ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#chatgpt-mermaid-_r_14u_ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#chatgpt-mermaid-_r_14u_ .node .neo-node{stroke:rgb(83, 154, 248);}#chatgpt-mermaid-_r_14u_ [data-look="neo"].node rect,#chatgpt-mermaid-_r_14u_ [data-look="neo"].cluster rect,#chatgpt-mermaid-_r_14u_ [data-look="neo"].node polygon{stroke:url(#chatgpt-mermaid-_r_14u_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14u_ [data-look="neo"].swimlane.cluster rect{filter:none;}#chatgpt-mermaid-_r_14u_ [data-look="neo"].node path{stroke:url(#chatgpt-mermaid-_r_14u_-gradient);stroke-width:1px;}#chatgpt-mermaid-_r_14u_ [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14u_ [data-look="neo"].node .neo-line path{stroke:rgb(83, 154, 248);filter:none;}#chatgpt-mermaid-_r_14u_ [data-look="neo"].node circle{stroke:url(#chatgpt-mermaid-_r_14u_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14u_ [data-look="neo"].node circle .state-start{fill:#000000;}#chatgpt-mermaid-_r_14u_ [data-look="neo"].icon-shape .icon{fill:url(#chatgpt-mermaid-_r_14u_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14u_ [data-look="neo"].icon-shape .icon-neo path{stroke:url(#chatgpt-mermaid-_r_14u_-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#chatgpt-mermaid-_r_14u_ .node text{font-size:14px;font-weight:600;letter-spacing:normal;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_14u_ .edgeLabels text{font-size:13px;font-weight:600;letter-spacing:-0.08px;fill:rgb(0, 79, 153);}#chatgpt-mermaid-_r_14u_ .node tspan[font-weight="normal"],#chatgpt-mermaid-_r_14u_ .edgeLabels tspan[font-weight="normal"]{font-weight:600;}#chatgpt-mermaid-_r_14u_ .edgeLabel .label rect{opacity:1;rx:13px;ry:13px;fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-width:1px;}#chatgpt-mermaid-_r_14u_ .node rect,#chatgpt-mermaid-_r_14u_ .node circle,#chatgpt-mermaid-_r_14u_ .node ellipse,#chatgpt-mermaid-_r_14u_ .node polygon,#chatgpt-mermaid-_r_14u_ .node path{fill:rgb(229, 243, 255);stroke:rgba(0, 0, 0, 0.1);stroke-width:1px;}#chatgpt-mermaid-_r_14u_ .node rect{rx:16px;ry:16px;}#chatgpt-mermaid-_r_14u_ .node.mermaid-decision .label-container{fill:rgb(245, 250, 255);stroke:rgb(206, 219, 229);stroke-dasharray:2,2;}#chatgpt-mermaid-_r_14u_ .edgePaths .flowchart-link{stroke:rgb(143, 143, 143);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;}#chatgpt-mermaid-_r_14u_ .marker{fill:rgb(143, 143, 143);stroke:rgb(143, 143, 143);}#chatgpt-mermaid-_r_14u_ :root{--mermaid-font-family:-apple-system-body,ui-sans-serif,-apple-system,system-ui,"Segoe UI",Helvetica,"Apple Color Emoji",Arial,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";}IAS-Research.comResearch and ArchitectureMBSE Model andVerification StrategyKeenComputer.comBuild and IntegrationTesting andDeploymentKeenDirect.comCommercial DeliveryCustomer andOperational Feedback

The common engineering model provides a shared reference point across research, implementation, and commercialization.

For example, IAS-Research could define the OBD-AI requirements, diagnostic architecture, evaluation strategy, and AI assurance approach. KeenComputer could implement the mobile application, backend, interfaces, automated tests, and deployment pipeline. KeenDirect could provide the commercial product information, customer portal, service packages, and ordering workflows.

For the smart inverter, IAS-Research could lead architecture and co-design studies; KeenComputer could support embedded software, interfaces, test automation, and monitoring; KeenDirect could support product documentation and customer-facing delivery if a commercial offering is established.

15.2 Proposed service offerings

Offering

Deliverable

Suitable customer

MBSE Readiness Assessment

Gap analysis, modeling strategy, pilot scope

SME engineering firm

Requirements and Traceability Package

Structured requirements, use cases, verification matrix

Embedded-product team

Hardware–Software Co-Design Study

Allocation analysis, interface definition, timing review

Electronics manufacturer

Sparx EA Model Setup

Repository structure, conventions, traceability, baseline workflow

Engineering organization

BDD and Test Automation Pilot

Gherkin scenarios, automated tests, test reports

Software or firmware team

Embedded Systems Verification

Test strategy, simulation/HIL planning, evidence review

Industrial or automotive supplier

AI-Assisted Diagnostics Prototype

Grounded retrieval, diagnostic workflow, evaluation harness

Automotive service organization

Smart Inverter Architecture Study

System architecture, control boundaries, interface and verification plan

Energy technology developer

Scope, effort, fees, delivery schedules, and acceptance criteria should be defined for each engagement. The most practical starting point is a short assessment followed by a bounded pilot with measurable deliverables.

15.3 Suggested call to action

For organizations planning an embedded, automotive, energy, or AI-enabled product, a useful first step is an MBSE and Hardware–Software Co-Design Assessment.

The engagement can establish:

  1. The product's operational boundary and stakeholder needs.
  2. The most important use cases and system requirements.
  3. The initial Sparx EA model and traceability structure.
  4. The highest-risk hardware/software interfaces.
  5. A prioritized verification strategy.
  6. A pilot implementation plan with measurable acceptance criteria.

The objective is to reduce architectural uncertainty before that uncertainty becomes expensive implementation rework.

16. Conclusion

Hardware–software co-design requires a unified engineering approach that connects stakeholder intent to physical implementation and objective evidence.

MBSE provides the system-level structure for requirements, architecture, behavior, constraints, and verification. SysML supplies a modeling language for those engineering concerns. Use cases describe the operational outcomes the system must support. Software Behavior-Driven Development turns selected requirements into concrete behavioral acceptance scenarios. Domain-Driven Design organizes complex software around explicit domain responsibilities and boundaries.

Sparx Enterprise Architect can serve as the central repository for this engineering model. It becomes significantly more valuable when model elements have stable identifiers, relationships are maintained deliberately, and implementation and verification artifacts can be traced to approved requirements and architecture decisions.

The OBD-AI example demonstrates the need to distinguish vehicle observations, diagnostic interpretations, retrieved service evidence, and AI-generated hypotheses. The smart inverter example demonstrates why local real-time control, physical interfaces, and protection behavior must be designed and verified alongside the software architecture.

The most important principle is not to maximize the number of models, diagrams, or automated tests. It is to maintain a trustworthy engineering thread from the original need to the evidence that the delivered system satisfies its requirements.

For IAS-Research.com, KeenComputer.com, and KeenDirect.com, this method offers a practical way to connect research, engineering implementation, verification, and commercialization through a shared, traceable design process.

Appendix A. Example requirement catalogue

The following requirements are proposed starting points. They are not approved product requirements and should be refined against the actual system context.

A.1 OBD-AI requirements

ID

Requirement statement

Verification

REQ-OBD-001

The system shall report whether a supported diagnostic interface is connected.

Test

REQ-OBD-002

The system shall validate the structure of received diagnostic responses before interpretation.

Test

REQ-OBD-003

The system shall distinguish unavailable measurements from valid numerical values.

Test

REQ-OBD-004

The system shall associate each diagnostic interpretation with its available vehicle context.

Integration test

REQ-OBD-005

The system shall distinguish a reported diagnostic code from a confirmed root cause.

Acceptance test

REQ-OBD-006

The system shall preserve the source identifiers of service information used in an advisory.

Integration test

REQ-OBD-007

The system shall report when evidence is insufficient to support an advisory.

AI evaluation

REQ-OBD-008

The system shall record the software and knowledge-source versions required by the approved audit policy.

Inspection and test

REQ-OBD-009

The system shall enforce the approved access policy for stored diagnostic cases.

Security test

REQ-OBD-010

The system shall report communication failures without silently representing them as successful diagnostic results.

Fault-injection test

A.2 Smart inverter requirements

ID

Requirement statement

Verification

REQ-INV-001

The controller shall validate the required measurement inputs before authorizing startup.

Test

REQ-INV-002

The control function shall complete within its approved deadline under the specified operating conditions.

Timing analysis and test

REQ-INV-003

The inverter shall reject startup when a required interlock is not satisfied.

Test

REQ-INV-004

The controller shall execute the specified protective response when a defined protection criterion is met.

Bench/HIL test

REQ-INV-005

The inverter shall follow its approved communications-loss policy without depending on a remote monitoring service for required local protection.

Integration test

REQ-INV-006

The controller shall validate configuration parameters against the approved constraints before enabling the relevant operating mode.

Test

REQ-INV-007

The controller shall record defined operating-state transitions and fault events.

Test

REQ-INV-008

The system shall identify the version of the active configuration and relevant firmware baseline.

Inspection and test

REQ-INV-009

The system shall prevent unauthorized configuration changes according to the approved security policy.

Security test

REQ-INV-010

The system shall demonstrate the required operating behavior across its specified modes and environmental conditions.

System validation

Appendix B. Modeling conventions and governance checklist

Use this checklist when establishing a new EA repository or reviewing an existing model.

Model readiness review

0 of 12

Every approved requirement has a stable unique identifier.

Each requirement has a clear statement, rationale, and verification method.

Stakeholder needs are linked to operational use cases.

System blocks have clear responsibilities and boundaries.

Critical interfaces have an owner and a controlled contract.

Hardware/software allocations are explicitly recorded.

Important operating states and fault transitions are modeled.

Safety and cybersecurity assumptions are documented.

Verification cases are linked to the requirements they test.

Implementation references identify a controlled version or baseline.

Change requests include impact analysis and review.

Approved baselines preserve model, implementation, and evidence references.

Reset checklist

Appendix C. Suggested Sparx EA diagram deliverables

Diagram

OBD-AI deliverable

Smart inverter deliverable

Context

Vehicle, adapter, users, application, services

DC source, inverter, AC interface, operator, gateway

Use cases

Establish session, interpret DTC, generate advisory

Start, regulate output, respond to fault

Requirements

Diagnostic-data quality, evidence, access, audit

Timing, sensing, operating modes, protection

Block Definition Diagram

Mobile app, adapter, diagnostic, knowledge, case services

Power stage, controller, sensing, protection, gateway

Internal Block Diagram

Interfaces among adapter, app, and backend

Electrical, sensing, control, and communications interfaces

Activity diagram

Acquire and interpret diagnostic data

Startup and control-cycle processing

Sequence diagram

Session acquisition and advisory generation

Control cycle and protective response

State machine

Diagnostic session lifecycle

Inactive, startup, operating, degraded, and fault states

Parametric model

Latency, data rates, retrieval limits

Timing, thermal, electrical, and control constraints

Verification model

API tests, diagnostic cases, AI evaluation

Firmware tests, timing measurements, bench/HIL tests

Appendix D. Recommended research and engineering references

The following resources provide starting points for developing the method further. Consult the edition appropriate to the selected project and modeling environment.

D.1 Systems modeling and Sparx EA

1. Object Management Group, Systems Modeling Language (SysML) Specifications. The OMG maintains the formal specifications and version information. OMG SysML specifications.

2. Object Management Group, SysML v2 Language Specification. Refer to the formal version applicable to the project and confirm tool support before adoption. SysML v2 language specification.

3. Sparx Systems, Guide to MBSE with SysML. A practical guide to modeling and traceability in Enterprise Architect. Sparx Systems MBSE and SysML guide.

4. Sparx Systems, Requirement Definition and Management. Guidance on requirements modeling and traceability in EA. EA requirement definition and management.

5. ISO/IEC/IEEE 15288, Systems and Software Engineering — System Life Cycle Processes. Consult the applicable published edition.

6. ISO/IEC/IEEE 29148, Systems and Software Engineering — Life Cycle Processes — Requirements Engineering. Consult the applicable published edition.

D.2 Behavior-Driven Development and Domain-Driven Design

7. Cucumber, Gherkin Reference. Syntax and semantics for behavior specifications. Gherkin reference.

8. Martin Fowler, Bounded Context. An introduction to a core DDD pattern. Bounded Context.

9. Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, 2003.

10. Vaughn Vernon, Implementing Domain-Driven Design. Addison-Wesley, 2013.

11. Dan North, Introducing BDD. A foundational explanation of behavior-driven development. Introducing BDD.

D.3 Embedded systems and software architecture

12. Frank Buschmann et al., Pattern-Oriented Software Architecture: A System of Patterns. Wiley.

13. Michael Barr and Anthony Massa, Programming Embedded Systems, 2nd edition. O'Reilly Media, 2006.

14. Elecia White, Making Embedded Systems, 2nd edition. O'Reilly Media, 2024.

15. Bruce Powel Douglass, Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems. Addison-Wesley, 2002.

16. ISO 26262, Road Vehicles — Functional Safety. Apply only where the product and intended use fall within its scope.

17. ISO/SAE 21434, Road Vehicles — Cybersecurity Engineering. Apply where relevant to the automotive product and its lifecycle.

D.4 Automotive diagnostics

18. SAE International, SAE J1979 and related diagnostic-service standards. Verify the applicable revision and supported diagnostic protocol.

19. ISO 15031 series, Road Vehicles — Communication Between Vehicle and External Equipment for Emissions-Related Diagnostics. Confirm the applicable parts and edition.

20. Vehicle-manufacturer service documentation and approved diagnostic procedures for the target vehicle population.

21. OASIS, MQTT Specifications, where MQTT is selected for telemetry transport. MQTT resources.

D.5 Smart inverter and power electronics

22. IEEE, IEEE Std 1547, Standard for Interconnection and Interoperability of Distributed Energy Resources with Associated Electric Power Systems Interfaces. Verify the applicable edition, amendments, and jurisdiction.

23. UL Standards & Engagement, UL 1741, covering applicable inverter, converter, controller, and interconnection-system equipment. Verify product applicability and current requirements.

24. IEC, IEC 62477 series, Safety Requirements for Power Electronic Converter Systems and Equipment. Consult the relevant parts for the selected converter architecture.

25. IEC, IEC 61800 series, for relevant adjustable-speed electrical power-drive system requirements where applicable to the design.

26. IEEE, IEEE 519, for relevant harmonic-control and power-quality considerations, subject to the installation and jurisdiction.

27. Manufacturer documentation for the selected microcontroller, DSP, FPGA, ADC, gate driver, sensors, and power semiconductor devices.

D.6 AI, retrieval, and software security

28. Lewis et al., “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks,” Advances in Neural Information Processing Systems, 2020.

29. National Institute of Standards and Technology, AI Risk Management Framework. NIST AI Risk Management Framework.

30. National Institute of Standards and Technology, Secure Software Development Framework (SSDF). NIST Secure Software Development Framework.

31. IEC 62443 series, Security for Industrial Automation and Control Systems, where applicable to the inverter's industrial environment and security obligations.

Final engineering recommendation

Begin with one bounded OBD-AI workflow and one bounded smart-inverter operating scenario. Define measurable requirements, create the corresponding EA models, specify interfaces, and connect each requirement to a verification method. Implement a small end-to-end prototype, execute the tests, record the evidence, and review the model against the observed system behavior.

That disciplined cycle—model, allocate, implement, verify, learn, and update—is the practical foundation of model-based hardware–software co-design.