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

memo → memo::artifacts → memo::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::*
private memo_core_common::*
private memo_core_common::MemoIdentity

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::*;

    private import memo_core_common::*;
    private import memo_core_common::MemoIdentity;
    part iec62304 : RegulatoryStandard {
        @MemoIdentity { :>> providedId = "STD-IEC-62304"; }
        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);
        part iec62304Clause4 : StandardClause {
            @MemoIdentity { :>> providedId = "STD-IEC-62304-4"; }
            attribute :>> clauseNumber = "4";
            attribute :>> title = "general lifecycle prerequisites";
            attribute :>> normativeStrength = "shall";
            part iec62304Clause4_1 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-4-1"; }
                attribute :>> clauseNumber = "4.1";
                attribute :>> title = "quality management system";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause4_2 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-4-2"; }
                attribute :>> clauseNumber = "4.2";
                attribute :>> title = "risk management activities";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause4_3 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-4-3"; }
                attribute :>> clauseNumber = "4.3";
                attribute :>> title = "software safety classification";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause4_4 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-4-4"; }
                attribute :>> clauseNumber = "4.4";
                attribute :>> title = "legacy software";
                attribute :>> normativeStrength = "shall";
            }
        }
        part iec62304Clause5 : StandardClause {
            @MemoIdentity { :>> providedId = "STD-IEC-62304-5"; }
            attribute :>> clauseNumber = "5";
            attribute :>> title = "software development process";
            attribute :>> normativeStrength = "shall";
            part iec62304Clause5_1 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1"; }
                attribute :>> clauseNumber = "5.1";
                attribute :>> title = "software development planning";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause5_1_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-1"; }
                    attribute :>> clauseNumber = "5.1.1";
                    attribute :>> title = "software development plan";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-2"; }
                    attribute :>> clauseNumber = "5.1.2";
                    attribute :>> title = "keeping the development plan current";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-3"; }
                    attribute :>> clauseNumber = "5.1.3";
                    attribute :>> title = "plan reference to system design and development";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-4"; }
                    attribute :>> clauseNumber = "5.1.4";
                    attribute :>> title = "development standards, methods and tools planning";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_5 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-5"; }
                    attribute :>> clauseNumber = "5.1.5";
                    attribute :>> title = "integration and integration test planning";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_6 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-6"; }
                    attribute :>> clauseNumber = "5.1.6";
                    attribute :>> title = "verification planning";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_7 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-7"; }
                    attribute :>> clauseNumber = "5.1.7";
                    attribute :>> title = "software risk management planning";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_8 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-8"; }
                    attribute :>> clauseNumber = "5.1.8";
                    attribute :>> title = "documentation planning";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_9 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-9"; }
                    attribute :>> clauseNumber = "5.1.9";
                    attribute :>> title = "configuration management planning";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_10 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-10"; }
                    attribute :>> clauseNumber = "5.1.10";
                    attribute :>> title = "supporting items to be controlled";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_11 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-11"; }
                    attribute :>> clauseNumber = "5.1.11";
                    attribute :>> title = "configuration item control before verification";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_1_12 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-1-12"; }
                    attribute :>> clauseNumber = "5.1.12";
                    attribute :>> title = "identifying and avoiding common software defects";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause5_2 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-5-2"; }
                attribute :>> clauseNumber = "5.2";
                attribute :>> title = "software requirements analysis";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause5_2_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-2-1"; }
                    attribute :>> clauseNumber = "5.2.1";
                    attribute :>> title = "deriving software requirements from system requirements";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_2_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-2-2"; }
                    attribute :>> clauseNumber = "5.2.2";
                    attribute :>> title = "software requirements content";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_2_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-2-3"; }
                    attribute :>> clauseNumber = "5.2.3";
                    attribute :>> title = "risk control measures carried into software requirements";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_2_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-2-4"; }
                    attribute :>> clauseNumber = "5.2.4";
                    attribute :>> title = "re-evaluating the risk analysis";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_2_5 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-2-5"; }
                    attribute :>> clauseNumber = "5.2.5";
                    attribute :>> title = "updating requirements";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_2_6 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-2-6"; }
                    attribute :>> clauseNumber = "5.2.6";
                    attribute :>> title = "software requirements verification";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause5_3 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-5-3"; }
                attribute :>> clauseNumber = "5.3";
                attribute :>> title = "software architectural design";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause5_3_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-3-1"; }
                    attribute :>> clauseNumber = "5.3.1";
                    attribute :>> title = "transforming requirements into an architecture";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_3_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-3-2"; }
                    attribute :>> clauseNumber = "5.3.2";
                    attribute :>> title = "architecture for the interfaces of software items";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_3_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-3-3"; }
                    attribute :>> clauseNumber = "5.3.3";
                    attribute :>> title = "functional and performance requirements of SOUP items";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_3_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-3-4"; }
                    attribute :>> clauseNumber = "5.3.4";
                    attribute :>> title = "hardware and software required by SOUP items";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_3_5 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-3-5"; }
                    attribute :>> clauseNumber = "5.3.5";
                    attribute :>> title = "segregation needed for risk control";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_3_6 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-3-6"; }
                    attribute :>> clauseNumber = "5.3.6";
                    attribute :>> title = "architecture verification";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause5_4 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-5-4"; }
                attribute :>> clauseNumber = "5.4";
                attribute :>> title = "software detailed design";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause5_4_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-4-1"; }
                    attribute :>> clauseNumber = "5.4.1";
                    attribute :>> title = "subdividing software into units";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_4_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-4-2"; }
                    attribute :>> clauseNumber = "5.4.2";
                    attribute :>> title = "detailed design of each unit";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_4_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-4-3"; }
                    attribute :>> clauseNumber = "5.4.3";
                    attribute :>> title = "detailed design of interfaces";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_4_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-4-4"; }
                    attribute :>> clauseNumber = "5.4.4";
                    attribute :>> title = "detailed design verification";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause5_5 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-5-5"; }
                attribute :>> clauseNumber = "5.5";
                attribute :>> title = "software unit implementation and verification";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause5_5_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-5-1"; }
                    attribute :>> clauseNumber = "5.5.1";
                    attribute :>> title = "implementing each unit";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_5_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-5-2"; }
                    attribute :>> clauseNumber = "5.5.2";
                    attribute :>> title = "unit verification process";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_5_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-5-3"; }
                    attribute :>> clauseNumber = "5.5.3";
                    attribute :>> title = "unit acceptance criteria";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_5_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-5-4"; }
                    attribute :>> clauseNumber = "5.5.4";
                    attribute :>> title = "additional unit acceptance criteria";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_5_5 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-5-5"; }
                    attribute :>> clauseNumber = "5.5.5";
                    attribute :>> title = "unit verification";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause5_6 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-5-6"; }
                attribute :>> clauseNumber = "5.6";
                attribute :>> title = "software integration and integration testing";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause5_6_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-6-1"; }
                    attribute :>> clauseNumber = "5.6.1";
                    attribute :>> title = "integrating units";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_6_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-6-2"; }
                    attribute :>> clauseNumber = "5.6.2";
                    attribute :>> title = "verifying integration";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_6_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-6-3"; }
                    attribute :>> clauseNumber = "5.6.3";
                    attribute :>> title = "integration testing";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_6_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-6-4"; }
                    attribute :>> clauseNumber = "5.6.4";
                    attribute :>> title = "integration testing content";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_6_5 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-6-5"; }
                    attribute :>> clauseNumber = "5.6.5";
                    attribute :>> title = "evaluating integration test procedures";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_6_6 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-6-6"; }
                    attribute :>> clauseNumber = "5.6.6";
                    attribute :>> title = "regression testing";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_6_7 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-6-7"; }
                    attribute :>> clauseNumber = "5.6.7";
                    attribute :>> title = "integration test record contents";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_6_8 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-6-8"; }
                    attribute :>> clauseNumber = "5.6.8";
                    attribute :>> title = "using the problem resolution process during integration";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause5_7 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-5-7"; }
                attribute :>> clauseNumber = "5.7";
                attribute :>> title = "software system testing";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause5_7_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-7-1"; }
                    attribute :>> clauseNumber = "5.7.1";
                    attribute :>> title = "establishing tests for software requirements";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_7_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-7-2"; }
                    attribute :>> clauseNumber = "5.7.2";
                    attribute :>> title = "using the problem resolution process during system testing";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_7_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-7-3"; }
                    attribute :>> clauseNumber = "5.7.3";
                    attribute :>> title = "retesting after changes";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_7_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-7-4"; }
                    attribute :>> clauseNumber = "5.7.4";
                    attribute :>> title = "evaluating software system testing";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_7_5 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-7-5"; }
                    attribute :>> clauseNumber = "5.7.5";
                    attribute :>> title = "software system test records";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause5_8 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-5-8"; }
                attribute :>> clauseNumber = "5.8";
                attribute :>> title = "software release";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause5_8_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-8-1"; }
                    attribute :>> clauseNumber = "5.8.1";
                    attribute :>> title = "ensuring software verification is complete";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_8_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-8-2"; }
                    attribute :>> clauseNumber = "5.8.2";
                    attribute :>> title = "documenting known residual anomalies";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_8_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-8-3"; }
                    attribute :>> clauseNumber = "5.8.3";
                    attribute :>> title = "evaluating known residual anomalies";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_8_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-8-4"; }
                    attribute :>> clauseNumber = "5.8.4";
                    attribute :>> title = "documenting released versions";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_8_5 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-8-5"; }
                    attribute :>> clauseNumber = "5.8.5";
                    attribute :>> title = "documenting how released software was created";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_8_6 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-8-6"; }
                    attribute :>> clauseNumber = "5.8.6";
                    attribute :>> title = "ensuring activities and tasks are complete";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_8_7 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-8-7"; }
                    attribute :>> clauseNumber = "5.8.7";
                    attribute :>> title = "archiving software";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause5_8_8 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-5-8-8"; }
                    attribute :>> clauseNumber = "5.8.8";
                    attribute :>> title = "assuring reliable delivery of released software";
                    attribute :>> normativeStrength = "shall";
                }
            }
        }
        part iec62304Clause6 : StandardClause {
            @MemoIdentity { :>> providedId = "STD-IEC-62304-6"; }
            attribute :>> clauseNumber = "6";
            attribute :>> title = "software maintenance process";
            attribute :>> normativeStrength = "shall";
            part iec62304Clause6_1 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-6-1"; }
                attribute :>> clauseNumber = "6.1";
                attribute :>> title = "establishing a software maintenance plan";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause6_2 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-6-2"; }
                attribute :>> clauseNumber = "6.2";
                attribute :>> title = "problem and modification analysis";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause6_2_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-6-2-1"; }
                    attribute :>> clauseNumber = "6.2.1";
                    attribute :>> title = "feedback";
                    attribute :>> normativeStrength = "shall";
                    part iec62304Clause6_2_1_1 : StandardClause {
                        @MemoIdentity { :>> providedId = "STD-IEC-62304-6-2-1-1"; }
                        attribute :>> clauseNumber = "6.2.1.1";
                        attribute :>> title = "monitoring feedback";
                        attribute :>> normativeStrength = "shall";
                    }
                    part iec62304Clause6_2_1_2 : StandardClause {
                        @MemoIdentity { :>> providedId = "STD-IEC-62304-6-2-1-2"; }
                        attribute :>> clauseNumber = "6.2.1.2";
                        attribute :>> title = "documenting and evaluating feedback";
                        attribute :>> normativeStrength = "shall";
                    }
                    part iec62304Clause6_2_1_3 : StandardClause {
                        @MemoIdentity { :>> providedId = "STD-IEC-62304-6-2-1-3"; }
                        attribute :>> clauseNumber = "6.2.1.3";
                        attribute :>> title = "evaluating the safety effect of problem reports";
                        attribute :>> normativeStrength = "shall";
                    }
                }
                part iec62304Clause6_2_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-6-2-2"; }
                    attribute :>> clauseNumber = "6.2.2";
                    attribute :>> title = "using the problem resolution process during maintenance";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause6_2_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-6-2-3"; }
                    attribute :>> clauseNumber = "6.2.3";
                    attribute :>> title = "analysing change requests";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause6_2_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-6-2-4"; }
                    attribute :>> clauseNumber = "6.2.4";
                    attribute :>> title = "change request approval";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause6_2_5 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-6-2-5"; }
                    attribute :>> clauseNumber = "6.2.5";
                    attribute :>> title = "communicating to users and regulators";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause6_3 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-6-3"; }
                attribute :>> clauseNumber = "6.3";
                attribute :>> title = "modification implementation";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause6_3_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-6-3-1"; }
                    attribute :>> clauseNumber = "6.3.1";
                    attribute :>> title = "using an established process to implement modifications";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause6_3_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-6-3-2"; }
                    attribute :>> clauseNumber = "6.3.2";
                    attribute :>> title = "re-releasing the modified software system";
                    attribute :>> normativeStrength = "shall";
                }
            }
        }
        part iec62304Clause7 : StandardClause {
            @MemoIdentity { :>> providedId = "STD-IEC-62304-7"; }
            attribute :>> clauseNumber = "7";
            attribute :>> title = "software risk management process";
            attribute :>> normativeStrength = "shall";
            part iec62304Clause7_1 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-7-1"; }
                attribute :>> clauseNumber = "7.1";
                attribute :>> title = "analysis of software contributing to hazardous situations";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause7_1_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-1-1"; }
                    attribute :>> clauseNumber = "7.1.1";
                    attribute :>> title = "identifying software items that could contribute to a hazardous situation";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause7_1_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-1-2"; }
                    attribute :>> clauseNumber = "7.1.2";
                    attribute :>> title = "identifying potential causes of such a contribution";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause7_1_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-1-3"; }
                    attribute :>> clauseNumber = "7.1.3";
                    attribute :>> title = "evaluating published SOUP anomaly lists";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause7_1_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-1-4"; }
                    attribute :>> clauseNumber = "7.1.4";
                    attribute :>> title = "documenting potential causes";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause7_2 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-7-2"; }
                attribute :>> clauseNumber = "7.2";
                attribute :>> title = "risk control measures";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause7_2_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-2-1"; }
                    attribute :>> clauseNumber = "7.2.1";
                    attribute :>> title = "defining risk control measures";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause7_2_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-2-2"; }
                    attribute :>> clauseNumber = "7.2.2";
                    attribute :>> title = "risk control measures implemented in software";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause7_3 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-7-3"; }
                attribute :>> clauseNumber = "7.3";
                attribute :>> title = "verification of risk control measures";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause7_3_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-3-1"; }
                    attribute :>> clauseNumber = "7.3.1";
                    attribute :>> title = "verifying risk control measures";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause7_3_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-3-3"; }
                    attribute :>> clauseNumber = "7.3.3";
                    attribute :>> title = "documenting traceability";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause7_4 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-7-4"; }
                attribute :>> clauseNumber = "7.4";
                attribute :>> title = "risk management of software changes";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause7_4_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-4-1"; }
                    attribute :>> clauseNumber = "7.4.1";
                    attribute :>> title = "analysing software changes with respect to safety";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause7_4_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-4-2"; }
                    attribute :>> clauseNumber = "7.4.2";
                    attribute :>> title = "analysing the impact of software changes on existing risk control measures";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause7_4_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-7-4-3"; }
                    attribute :>> clauseNumber = "7.4.3";
                    attribute :>> title = "performing risk management activities from the analyses";
                    attribute :>> normativeStrength = "shall";
                }
            }
        }
        part iec62304Clause8 : StandardClause {
            @MemoIdentity { :>> providedId = "STD-IEC-62304-8"; }
            attribute :>> clauseNumber = "8";
            attribute :>> title = "software configuration management process";
            attribute :>> normativeStrength = "shall";
            part iec62304Clause8_1 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-8-1"; }
                attribute :>> clauseNumber = "8.1";
                attribute :>> title = "configuration identification";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause8_1_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-8-1-1"; }
                    attribute :>> clauseNumber = "8.1.1";
                    attribute :>> title = "means to identify configuration items";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause8_1_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-8-1-2"; }
                    attribute :>> clauseNumber = "8.1.2";
                    attribute :>> title = "SOUP identification";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause8_1_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-8-1-3"; }
                    attribute :>> clauseNumber = "8.1.3";
                    attribute :>> title = "identifying system configuration documentation";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause8_2 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-8-2"; }
                attribute :>> clauseNumber = "8.2";
                attribute :>> title = "change control";
                attribute :>> normativeStrength = "shall";
                part iec62304Clause8_2_1 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-8-2-1"; }
                    attribute :>> clauseNumber = "8.2.1";
                    attribute :>> title = "approving change requests";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause8_2_2 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-8-2-2"; }
                    attribute :>> clauseNumber = "8.2.2";
                    attribute :>> title = "implementing changes";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause8_2_3 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-8-2-3"; }
                    attribute :>> clauseNumber = "8.2.3";
                    attribute :>> title = "verifying changes";
                    attribute :>> normativeStrength = "shall";
                }
                part iec62304Clause8_2_4 : StandardClause {
                    @MemoIdentity { :>> providedId = "STD-IEC-62304-8-2-4"; }
                    attribute :>> clauseNumber = "8.2.4";
                    attribute :>> title = "traceability of changes";
                    attribute :>> normativeStrength = "shall";
                }
            }
            part iec62304Clause8_3 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-8-3"; }
                attribute :>> clauseNumber = "8.3";
                attribute :>> title = "configuration status accounting";
                attribute :>> normativeStrength = "shall";
            }
        }
        part iec62304Clause9 : StandardClause {
            @MemoIdentity { :>> providedId = "STD-IEC-62304-9"; }
            attribute :>> clauseNumber = "9";
            attribute :>> title = "software problem resolution process";
            attribute :>> normativeStrength = "shall";
            part iec62304Clause9_1 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-9-1"; }
                attribute :>> clauseNumber = "9.1";
                attribute :>> title = "preparing problem reports";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause9_2 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-9-2"; }
                attribute :>> clauseNumber = "9.2";
                attribute :>> title = "investigating the problem";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause9_3 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-9-3"; }
                attribute :>> clauseNumber = "9.3";
                attribute :>> title = "advising relevant parties";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause9_4 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-9-4"; }
                attribute :>> clauseNumber = "9.4";
                attribute :>> title = "using the change control process";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause9_5 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-9-5"; }
                attribute :>> clauseNumber = "9.5";
                attribute :>> title = "maintaining records";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause9_6 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-9-6"; }
                attribute :>> clauseNumber = "9.6";
                attribute :>> title = "analysing problems for trends";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause9_7 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-9-7"; }
                attribute :>> clauseNumber = "9.7";
                attribute :>> title = "verifying problem resolution";
                attribute :>> normativeStrength = "shall";
            }
            part iec62304Clause9_8 : StandardClause {
                @MemoIdentity { :>> providedId = "STD-IEC-62304-9-8"; }
                attribute :>> clauseNumber = "9.8";
                attribute :>> title = "test documentation contents";
                attribute :>> normativeStrength = "shall";
            }
        }
    }

    // ── 4 General requirements ───────────────────────────────────────────

    // ── 5 Software development process ───────────────────────────────────

    // ── 6-9 Supporting processes ─────────────────────────────────────────

    // ── 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.



}