Skip to content

First Useful Workflow

This workflow turns one engineering concern into a visible, testable trace.

1. Add a need and requirement

In a project .sysml file:

package my_device {
    private import memo_medical_device_library::*;

    requirement safeOperation : Need {
        attribute :>> id = "NEED-001";
        attribute :>> name = "SafeOperation";
        attribute :>> needKind = NeedKind::stakeholder;
        attribute :>> statement = "The device must protect the patient during normal use.";
    }

    requirement detectFault : Requirement {
        attribute :>> id = "REQ-001";
        attribute :>> requirementKind = RequirementKind::system;
        attribute :>> name = "DetectDeliveryFault";
        attribute :>> statement =
            "The device shall detect a delivery fault within two seconds.";
    }

    connection : DerivesFrom
        connect sourceDriver ::> safeOperation
        to targetRequirement ::> detectFault;
}

2. Validate the project

npx memo validate .

Read each result as an engineering question. Do not add a meaningless link just to improve the completeness score.

3. Export a reviewable graph

npx memo export json --output model.json
npx memo export dot --output model.dot

The JSON export supports downstream analysis; DOT supports graph visualization.

4. Make validation repeatable

npx memo validate . \
  --format junit \
  --output validation.xml

Publish validation.xml as a test report in CI. See Run in CI for GitHub and GitLab examples.

5. Extend vertically

Add the responsible function and component, relevant hazard and control, then the verification case and evidence. The MEMO Ontology guide explains the layer, element, and relationship choices.