Skip to content

memo_architecture_implementation_hardware_common

SysML API

Public namespace memo::architecture::implementation::hardware::common
Declared package memo_architecture_implementation_hardware_common
Source src/architecture/implementation/hardware/common/memo_hardware_common.sysml

Namespace hierarchy

memo → memo::architecture → memo::architecture::implementation → memo::architecture::implementation::hardware → memo::architecture::implementation::hardware::common

Packages

Package
memo_architecture_implementation_hardware_common

Imports

Visibility Target
private memo_core_stdlib_quantities::*
private ScalarValues::*
private memo_core_common::*
private memo_core_enumerations::*
private memo_core_relationships::*

Declarations

Name SysML kind Description Specializes
PhysicalElement part def Physical element definition specializing MemoPart. MemoPart
PhysicalAssembly part def Physical assembly definition specializing PhysicalElement. PhysicalElement
PhysicalSubassembly part def Physical subassembly definition specializing PhysicalAssembly. PhysicalAssembly
HardwareAssembly part def Hardware assembly definition specializing PhysicalAssembly. PhysicalAssembly
PhysicalComponent part def Physical component definition specializing PhysicalElement. PhysicalElement
HardwareComponent part def Hardware component definition specializing PhysicalComponent. PhysicalComponent
AcousticComponent part def Acoustic component definition specializing PhysicalComponent. PhysicalComponent
ThermalComponent part def Thermal component definition specializing PhysicalComponent. PhysicalComponent

PhysicalElement

abstract part def PhysicalElement specializes MemoPart
Property Value
Description Physical element definition specializing MemoPart.
Kind part def
Abstract Yes
Specializes MemoPart
Owning package memo_architecture_implementation_hardware_common

PhysicalAssembly

part def PhysicalAssembly specializes PhysicalElement
Property Value
Description Physical assembly definition specializing PhysicalElement.
Kind part def
Abstract No
Specializes PhysicalElement
Owning package memo_architecture_implementation_hardware_common

PhysicalSubassembly

part def PhysicalSubassembly specializes PhysicalAssembly
Property Value
Description Physical subassembly definition specializing PhysicalAssembly.
Kind part def
Abstract No
Specializes PhysicalAssembly
Owning package memo_architecture_implementation_hardware_common

HardwareAssembly

part def HardwareAssembly specializes PhysicalAssembly
Property Value
Description Hardware assembly definition specializing PhysicalAssembly.
Kind part def
Abstract No
Specializes PhysicalAssembly
Owning package memo_architecture_implementation_hardware_common

PhysicalComponent

part def PhysicalComponent specializes PhysicalElement
Property Value
Description Physical component definition specializing PhysicalElement.
Kind part def
Abstract No
Specializes PhysicalElement
Owning package memo_architecture_implementation_hardware_common

HardwareComponent

part def HardwareComponent specializes PhysicalComponent
Property Value
Description Hardware component definition specializing PhysicalComponent.
Kind part def
Abstract No
Specializes PhysicalComponent
Owning package memo_architecture_implementation_hardware_common

AcousticComponent

part def AcousticComponent specializes PhysicalComponent
Property Value
Description Acoustic component definition specializing PhysicalComponent.
Kind part def
Abstract No
Specializes PhysicalComponent
Owning package memo_architecture_implementation_hardware_common

ThermalComponent

part def ThermalComponent specializes PhysicalComponent
Property Value
Description Thermal component definition specializing PhysicalComponent.
Kind part def
Abstract No
Specializes PhysicalComponent
Owning package memo_architecture_implementation_hardware_common

Source

architecture/implementation/hardware/common/memo_hardware_common.sysml
// Physical realization taxonomy (§12) — shared roots. "Physical" encompasses
// hardware, mechanical, fluidic, pneumatic, optical, acoustic, and thermal
// realization — not only electronics. Assemblies compose components; patient-
// contacting parts must declare contact characteristics (ISO 10993-1;
// rules/crosslayer). Technology-domain subgroups (electrical, mechanical,
// fluidic, optical, sensing) nest in sibling packages and specialize the roots
// declared here; acoustic and thermal parts have no dedicated subgroup and stay
// with the roots.
package memo_architecture_implementation_hardware_common {
    private import memo_core_stdlib_quantities::*;
    private import ScalarValues::*;

    private import memo_core_common::*;
    private import memo_core_enumerations::*;
    private import memo_core_relationships::*;

    // The shared root of the physical family.
    //
    // `PhysicalAssembly` and `PhysicalComponent` each specialized `MemoPart`
    // directly, so the family had two roots and no single type that means
    // "a physical thing". A containment rule has to name one type, and
    // `conformsTo(MemoPart)` is far too wide — it admits a requirement or a
    // hazard. This is that type, and it carries nothing of its own: the split
    // between an assembly and a component is what the two subtypes are for.
    abstract part def PhysicalElement specializes MemoPart { }

    part def PhysicalAssembly specializes PhysicalElement {
        attribute responsibility : String;
        attribute safetyRole : String;
        attribute mtbfHours : DurationValue;
        attribute protectionClass : String;
        attribute ipRating : String;
    }
    part def PhysicalSubassembly specializes PhysicalAssembly;
    // Retained name from 0.4; an electronics-centred assembly.
    part def HardwareAssembly specializes PhysicalAssembly;

    part def PhysicalComponent specializes PhysicalElement {
        attribute materialSummary : String;
        // ISO 10993-1 contact characterization; required when true.
        attribute patientContact : Boolean;
        attribute contactNature : String;
        attribute contactDuration : String;
    }

    part def HardwareComponent specializes PhysicalComponent;

    part def AcousticComponent specializes PhysicalComponent {
        attribute acousticFunction : String;
    }
    part def ThermalComponent specializes PhysicalComponent {
        attribute thermalFunction : String;
        attribute operatingRange : String;
    }
}