Skip to content

memo_artifacts_standards_iec_62304

SysML API

Public namespace memo::artifacts::standards
Declared package memo_artifacts_standards_iec_62304
Source src/artifacts/standards/iec_62304.sysml

Namespace hierarchy

memomemo::artifactsmemo::artifacts::standards

Packages

Package
memo_artifacts_standards_iec_62304

Imports

Visibility Target
private ScalarValues::*
private memo_core_enumerations::*
private memo_core_relationships::*
private memo_artifacts_standards_traceability::*

Declarations

Name SysML kind Description Specializes

Source

artifacts/standards/iec_62304.sysml
// IEC 62304:2006+AMD1:2015 — medical device software lifecycle processes.
//
// Clause instances, not type machinery. Everything here is data: adding a
// standard is one file like this one and zero TypeScript changes.
//
// Depth is representative, not exhaustive — the level at which the standard
// makes a distinct normative requirement a MEMO document actually claims.
// A clause nobody claims yet costs nothing to add later.
//
// Each `title` is a MEMO-AUTHORED scope phrase, never the standard's own
// normative wording, which is copyrighted. It is a display label: queries
// traverse ConformsTo to the clause instance, they never match on its text.
package memo_artifacts_standards_iec_62304 {
    private import ScalarValues::*;
    private import memo_core_enumerations::*;
    private import memo_core_relationships::*;
    private import memo_artifacts_standards_traceability::*;

    item iec62304 : RegulatoryStandard {
        attribute :>> id = "STD-IEC-62304";
        attribute :>> name = "IEC62304";
        attribute :>> designation = "IEC 62304:2006+AMD1:2015";
        attribute :>> edition = "2006";
        attribute :>> issuer = "IEC";
        attribute :>> amendments = "AMD1:2015";
        attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
    }

    // ── 4 General requirements ───────────────────────────────────────────
    item iec62304Clause4 : StandardClause {
        attribute :>> id = "STD-IEC-62304-4";
        attribute :>> name = "IEC62304Clause4";
        attribute :>> clauseNumber = "4";
        attribute :>> title = "general lifecycle prerequisites";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause4_3 : StandardClause {
        attribute :>> id = "STD-IEC-62304-4-3";
        attribute :>> name = "IEC62304Clause4_3";
        attribute :>> clauseNumber = "4.3";
        attribute :>> title = "software safety classification";
        attribute :>> normativeStrength = "shall";
    }

    // ── 5 Software development process ───────────────────────────────────
    item iec62304Clause5 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5";
        attribute :>> name = "IEC62304Clause5";
        attribute :>> clauseNumber = "5";
        attribute :>> title = "software development process";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_1 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-1";
        attribute :>> name = "IEC62304Clause5_1";
        attribute :>> clauseNumber = "5.1";
        attribute :>> title = "software development planning";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_1_1 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-1-1";
        attribute :>> name = "IEC62304Clause5_1_1";
        attribute :>> clauseNumber = "5.1.1";
        attribute :>> title = "software development plan";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_2 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-2";
        attribute :>> name = "IEC62304Clause5_2";
        attribute :>> clauseNumber = "5.2";
        attribute :>> title = "software requirements analysis";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_2_2 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-2-2";
        attribute :>> name = "IEC62304Clause5_2_2";
        attribute :>> clauseNumber = "5.2.2";
        attribute :>> title = "software requirements content";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_2_3 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-2-3";
        attribute :>> name = "IEC62304Clause5_2_3";
        attribute :>> clauseNumber = "5.2.3";
        attribute :>> title = "risk control measures carried into software requirements";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_2_6 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-2-6";
        attribute :>> name = "IEC62304Clause5_2_6";
        attribute :>> clauseNumber = "5.2.6";
        attribute :>> title = "software requirements verification";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_3 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-3";
        attribute :>> name = "IEC62304Clause5_3";
        attribute :>> clauseNumber = "5.3";
        attribute :>> title = "software architectural design";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_4 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-4";
        attribute :>> name = "IEC62304Clause5_4";
        attribute :>> clauseNumber = "5.4";
        attribute :>> title = "software detailed design";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_5 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-5";
        attribute :>> name = "IEC62304Clause5_5";
        attribute :>> clauseNumber = "5.5";
        attribute :>> title = "software unit implementation and verification";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_6 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-6";
        attribute :>> name = "IEC62304Clause5_6";
        attribute :>> clauseNumber = "5.6";
        attribute :>> title = "software integration and integration testing";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_7 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-7";
        attribute :>> name = "IEC62304Clause5_7";
        attribute :>> clauseNumber = "5.7";
        attribute :>> title = "software system testing";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_7_5 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-7-5";
        attribute :>> name = "IEC62304Clause5_7_5";
        attribute :>> clauseNumber = "5.7.5";
        attribute :>> title = "software system test records";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause5_8 : StandardClause {
        attribute :>> id = "STD-IEC-62304-5-8";
        attribute :>> name = "IEC62304Clause5_8";
        attribute :>> clauseNumber = "5.8";
        attribute :>> title = "software release";
        attribute :>> normativeStrength = "shall";
    }

    // ── 6-9 Supporting processes ─────────────────────────────────────────
    item iec62304Clause6 : StandardClause {
        attribute :>> id = "STD-IEC-62304-6";
        attribute :>> name = "IEC62304Clause6";
        attribute :>> clauseNumber = "6";
        attribute :>> title = "software maintenance process";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause7 : StandardClause {
        attribute :>> id = "STD-IEC-62304-7";
        attribute :>> name = "IEC62304Clause7";
        attribute :>> clauseNumber = "7";
        attribute :>> title = "software risk management process";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause8 : StandardClause {
        attribute :>> id = "STD-IEC-62304-8";
        attribute :>> name = "IEC62304Clause8";
        attribute :>> clauseNumber = "8";
        attribute :>> title = "software configuration management process";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause8_1_2 : StandardClause {
        attribute :>> id = "STD-IEC-62304-8-1-2";
        attribute :>> name = "IEC62304Clause8_1_2";
        attribute :>> clauseNumber = "8.1.2";
        attribute :>> title = "SOUP identification";
        attribute :>> normativeStrength = "shall";
    }
    item iec62304Clause9 : StandardClause {
        attribute :>> id = "STD-IEC-62304-9";
        attribute :>> name = "IEC62304Clause9";
        attribute :>> clauseNumber = "9";
        attribute :>> title = "software problem resolution process";
        attribute :>> normativeStrength = "shall";
    }

    // ── Containment ──────────────────────────────────────────────────────
    // The existing Composes relation, standard → clause → sub-clause. There
    // is no clause-specific composition type: whole/part decomposition is
    // already one relation in MEMO.
    connection iec62304Has4 : Composes connect parent ::> iec62304 to child ::> iec62304Clause4;
    connection iec62304Has5 : Composes connect parent ::> iec62304 to child ::> iec62304Clause5;
    connection iec62304Has6 : Composes connect parent ::> iec62304 to child ::> iec62304Clause6;
    connection iec62304Has7 : Composes connect parent ::> iec62304 to child ::> iec62304Clause7;
    connection iec62304Has8 : Composes connect parent ::> iec62304 to child ::> iec62304Clause8;
    connection iec62304Has9 : Composes connect parent ::> iec62304 to child ::> iec62304Clause9;

    connection iec62304Has4_3 : Composes connect parent ::> iec62304Clause4 to child ::> iec62304Clause4_3;

    connection iec62304Has5_1 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_1;
    connection iec62304Has5_2 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_2;
    connection iec62304Has5_3 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_3;
    connection iec62304Has5_4 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_4;
    connection iec62304Has5_5 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_5;
    connection iec62304Has5_6 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_6;
    connection iec62304Has5_7 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_7;
    connection iec62304Has5_8 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_8;

    connection iec62304Has5_1_1 : Composes connect parent ::> iec62304Clause5_1 to child ::> iec62304Clause5_1_1;
    connection iec62304Has5_2_2 : Composes connect parent ::> iec62304Clause5_2 to child ::> iec62304Clause5_2_2;
    connection iec62304Has5_2_3 : Composes connect parent ::> iec62304Clause5_2 to child ::> iec62304Clause5_2_3;
    connection iec62304Has5_2_6 : Composes connect parent ::> iec62304Clause5_2 to child ::> iec62304Clause5_2_6;
    connection iec62304Has5_7_5 : Composes connect parent ::> iec62304Clause5_7 to child ::> iec62304Clause5_7_5;
    connection iec62304Has8_1_2 : Composes connect parent ::> iec62304Clause8 to child ::> iec62304Clause8_1_2;
}