@memoarchitect/ontology 0.6.3 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -3
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +1 -1
- package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +148 -0
- package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +301 -0
- package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +229 -0
- package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +200 -0
- package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +188 -0
- package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +173 -0
- package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +180 -0
- package/examples/gpca-pump/analysis/Samples/README.md +37 -0
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +21 -11
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +7 -1
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +34 -5
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +104 -104
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +9 -0
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +36 -12
- package/examples/gpca-pump/model/views/logical_device_interconnect_view.sysml +3 -3
- package/examples/sysml-diagram-samples/model/samples/requirements_view.sysml +2 -2
- package/examples/sysml-diagram-samples/model/samples/use_case_view.sysml +4 -4
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +5 -3
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +3 -3
- package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +2 -2
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +26 -1
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +1 -1
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +1 -1
- package/src/architecture/operational/workflows/memo_workflows.sysml +2 -2
- package/src/architecture/realization/deployment/memo_deployment.sysml +2 -2
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +0 -1
- package/src/assurance/requirements/memo_requirements.sysml +1 -1
- package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
- package/src/compliance/artifacts/memo_artifacts.sysml +0 -1
- package/src/core/common/memo_common.sysml +3 -1
- package/src/core/enumerations/memo_enumerations.sysml +17 -1
- package/src/core/relationships/memo_relationships.sysml +9 -5
- package/src/memo_namespaces.sysml +2 -2
- package/src/methodology/profiles/memo_profiles.sysml +6 -22
- package/src/rules/ontology/ontology_invariants.sysml +13 -0
- package/src/viewpoints/context/context_viewpoint.sysml +10 -1
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +2 -0
|
@@ -30,7 +30,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_actions {
|
|
|
30
30
|
attribute :>> itemKind = InterfaceItemKind::command;
|
|
31
31
|
}
|
|
32
32
|
item def TherapyEventRecord specializes InterfaceItem {
|
|
33
|
-
attribute :>> itemKind = InterfaceItemKind::event;
|
|
33
|
+
attribute :>> itemKind = InterfaceItemKind::'event';
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
action def AcquireSensorData {
|
|
@@ -13,13 +13,19 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_modes {
|
|
|
13
13
|
// auto-initiate on the prescribed schedule (REQ 24), with no
|
|
14
14
|
// external trigger. Mode-tree containment edges (Composes)
|
|
15
15
|
// live in gpca_trace.sysml.
|
|
16
|
+
// Audit scope: this is a requirements-level therapy-mode abstraction, not
|
|
17
|
+
// a full transcription of CITE-009's monolithic Stateflow chart. The
|
|
18
|
+
// source chart also contains detailed Configuration, Alarms,
|
|
19
|
+
// System_Monitor, Log, and Infusion_Manager state behavior that remains
|
|
20
|
+
// outside this compact mode view.
|
|
16
21
|
// ═════════════════════════════════════════════════════════════
|
|
17
22
|
state topLevelModeMachine : StateMachine {
|
|
18
23
|
attribute :>> id = "BM-001";
|
|
19
24
|
attribute :>> name = "TopLevelModeMachine";
|
|
20
25
|
attribute :>> machineKind = "hierarchical state machine";
|
|
21
26
|
attribute :>> executionSemantics = "single-step synchronous; sub-modes inherit all parent-mode requirements";
|
|
22
|
-
attribute
|
|
27
|
+
attribute fidelityScope = "Requirements-derived therapy mode hierarchy; partial abstraction of CITE-009, not a state-for-state Stateflow transcription";
|
|
28
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1 Fig 4.1; CITE-009: CriSys PCA Pump Software Model";
|
|
23
29
|
}
|
|
24
30
|
|
|
25
31
|
// ── Mode states (Fig 4.1) ───────────────────────────────────
|
|
@@ -128,7 +128,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_cybersecurity {
|
|
|
128
128
|
attribute :>> statement = "The system shall require authenticated and authorized service access before any therapy configuration parameter can be modified.";
|
|
129
129
|
attribute :>> sourceKind = RequirementSourceKind::risk;
|
|
130
130
|
attribute :>> concernKind = ConcernKind::cybersecurity;
|
|
131
|
-
attribute :>>
|
|
131
|
+
attribute :>> requirementStatus = RequirementStatusKind::approved;
|
|
132
132
|
attribute :>> acceptanceCriteria = "Unauthenticated or unauthorized attempts to modify therapy configuration are rejected and logged.";
|
|
133
133
|
attribute :>> subjectDescription = "maintenance and configuration path";
|
|
134
134
|
attribute :>> actorDescription = "service personnel";
|
|
@@ -2,6 +2,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_logical_interfaces::*;
|
|
5
|
+
private import memo_architecture_realization_physical::*;
|
|
5
6
|
private import memo_architecture_functional_functions::*;
|
|
6
7
|
private import memo_examples_gpca_pump_model_catalog_gpca_architecture::*;
|
|
7
8
|
private import memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems::*;
|
|
@@ -572,7 +573,10 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
|
572
573
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
573
574
|
}
|
|
574
575
|
|
|
575
|
-
// ──
|
|
576
|
+
// ── MEMO functional-to-physical allocation abstractions ────
|
|
577
|
+
// These four exchanges summarize requirements-derived physical design
|
|
578
|
+
// intent. They are not the named port connections in GPCA_Device.aadl;
|
|
579
|
+
// the exact AADL feature topology is authored below and in gpca_trace.
|
|
576
580
|
part exSensorVector : ComponentExchange {
|
|
577
581
|
attribute :>> id = "CE-001";
|
|
578
582
|
attribute :>> name = "SensorStatusVectorExchange";
|
|
@@ -584,7 +588,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
|
584
588
|
ref :>> allocatedExchanges = lfSensorAcquisition;
|
|
585
589
|
attribute :>> direction = DirectionKind::input;
|
|
586
590
|
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
587
|
-
attribute :>> sourceReference = "
|
|
591
|
+
attribute :>> sourceReference = "MEMO design extension allocated from LF-001; not a GPCA_Device.aadl connection";
|
|
588
592
|
}
|
|
589
593
|
part exFlowCommand : ComponentExchange {
|
|
590
594
|
attribute :>> id = "CE-002";
|
|
@@ -597,7 +601,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
|
597
601
|
ref :>> allocatedExchanges = lfFlowCommand;
|
|
598
602
|
attribute :>> direction = DirectionKind::output;
|
|
599
603
|
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
600
|
-
attribute :>> sourceReference = "
|
|
604
|
+
attribute :>> sourceReference = "MEMO design extension allocated from LF-002; not a GPCA_Device.aadl connection";
|
|
601
605
|
}
|
|
602
606
|
part exAlarmAnnunciation : ComponentExchange {
|
|
603
607
|
attribute :>> id = "CE-003";
|
|
@@ -610,7 +614,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
|
610
614
|
ref :>> allocatedExchanges = lfAlarmSignal;
|
|
611
615
|
attribute :>> direction = DirectionKind::output;
|
|
612
616
|
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
613
|
-
attribute :>> sourceReference = "
|
|
617
|
+
attribute :>> sourceReference = "MEMO design extension allocated from LF-003; not a GPCA_Device.aadl connection";
|
|
614
618
|
}
|
|
615
619
|
part exPrescriptionEntry : ComponentExchange {
|
|
616
620
|
attribute :>> id = "CE-004";
|
|
@@ -623,9 +627,34 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
|
623
627
|
ref :>> allocatedExchanges = lfPrescriptionEntry;
|
|
624
628
|
attribute :>> direction = DirectionKind::input;
|
|
625
629
|
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
626
|
-
attribute :>> sourceReference = "
|
|
630
|
+
attribute :>> sourceReference = "MEMO design extension allocated from LF-004; not a GPCA_Device.aadl connection";
|
|
627
631
|
}
|
|
628
632
|
|
|
633
|
+
// ── GPCA_Device and hardware-subsystem ports (AADL, 1:1) ───
|
|
634
|
+
// The published AADL hardware packages are interface wrappers: they do
|
|
635
|
+
// not decompose into the individual physical parts modelled elsewhere in
|
|
636
|
+
// this MEMO example. These features and their connections are therefore
|
|
637
|
+
// kept exact and separate from that extended physical design content.
|
|
638
|
+
part devOpCmdIn : PhysicalPort { attribute :>> id = "PORT-DEV-01"; attribute :>> name = "OP_CMD_IN"; attribute :>> direction = DirectionKind::input; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
639
|
+
part devDbIn : PhysicalPort { attribute :>> id = "PORT-DEV-02"; attribute :>> name = "DB_IN"; attribute :>> direction = DirectionKind::input; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
640
|
+
part devPresIn : PhysicalPort { attribute :>> id = "PORT-DEV-03"; attribute :>> name = "PRES_IN"; attribute :>> direction = DirectionKind::input; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
641
|
+
part devPatientIn : PhysicalPort { attribute :>> id = "PORT-DEV-04"; attribute :>> name = "PATIENT_IN"; attribute :>> direction = DirectionKind::input; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
642
|
+
part devGpcaOut : PhysicalPort { attribute :>> id = "PORT-DEV-05"; attribute :>> name = "GPCA_OUT"; attribute :>> direction = DirectionKind::output; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
643
|
+
|
|
644
|
+
part snsOpCmdIn : PhysicalPort { attribute :>> id = "PORT-SNS-01"; attribute :>> name = "OP_CMD_IN"; attribute :>> direction = DirectionKind::input; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
645
|
+
part snsDbIn : PhysicalPort { attribute :>> id = "PORT-SNS-02"; attribute :>> name = "DB_IN"; attribute :>> direction = DirectionKind::input; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
646
|
+
part snsPresIn : PhysicalPort { attribute :>> id = "PORT-SNS-03"; attribute :>> name = "PRES_IN"; attribute :>> direction = DirectionKind::input; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
647
|
+
part snsPatientIn : PhysicalPort { attribute :>> id = "PORT-SNS-04"; attribute :>> name = "PATIENT_IN"; attribute :>> direction = DirectionKind::input; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
648
|
+
part snsOpCmdOut : PhysicalPort { attribute :>> id = "PORT-SNS-05"; attribute :>> name = "OP_CMD_OUT"; attribute :>> direction = DirectionKind::output; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
649
|
+
part snsPresOut : PhysicalPort { attribute :>> id = "PORT-SNS-06"; attribute :>> name = "PRES_OUT"; attribute :>> direction = DirectionKind::output; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
650
|
+
part snsPatientOut : PhysicalPort { attribute :>> id = "PORT-SNS-07"; attribute :>> name = "PATIENT_OUT"; attribute :>> direction = DirectionKind::output; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
651
|
+
part snsSensorOut : PhysicalPort { attribute :>> id = "PORT-SNS-08"; attribute :>> name = "SENSOR_OUT"; attribute :>> direction = DirectionKind::output; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
652
|
+
part snsConstOut : PhysicalPort { attribute :>> id = "PORT-SNS-09"; attribute :>> name = "CONST_OUT"; attribute :>> direction = DirectionKind::output; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
653
|
+
part snsDbOut : PhysicalPort { attribute :>> id = "PORT-SNS-10"; attribute :>> name = "DB_OUT"; attribute :>> direction = DirectionKind::output; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
654
|
+
|
|
655
|
+
part actGpcaSwIn : PhysicalPort { attribute :>> id = "PORT-ACT-01"; attribute :>> name = "GPCA_SW_IN"; attribute :>> direction = DirectionKind::input; attribute :>> sourceReference = "CITE-002: GPCA_HW_Actuators.aadl"; }
|
|
656
|
+
part actGpcaOut : PhysicalPort { attribute :>> id = "PORT-ACT-02"; attribute :>> name = "GPCA_OUT"; attribute :>> direction = DirectionKind::output; attribute :>> sourceReference = "CITE-002: GPCA_HW_Actuators.aadl"; }
|
|
657
|
+
|
|
629
658
|
// ── GPCA_SW top-level ports (AADL GPCA_SW.aadl features) ────
|
|
630
659
|
part portOpCmdIn : SoftwarePort {
|
|
631
660
|
attribute :>> id = "PORT-01"; attribute :>> name = "OP_CMD_IN";
|