@memoarchitect/ontology 0.11.2 → 0.12.1

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.
Files changed (53) hide show
  1. package/README.md +1 -1
  2. package/examples/gpca-pump/memo.identity.yaml +27 -0
  3. package/examples/gpca-pump/model/catalog/gpca_system.sysml +3 -3
  4. package/examples/sysml-diagram-samples/README.md +10 -0
  5. package/examples/sysml-diagram-samples/dashboards/README.md +17 -0
  6. package/examples/sysml-diagram-samples/dashboards/viewpoint-vp-demo-ibd.md +61 -0
  7. package/examples/sysml-diagram-samples/memo.identity.yaml +616 -0
  8. package/examples/sysml-diagram-samples/model/catalog/project.sysml +2 -11
  9. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +81 -6
  10. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +15 -5
  11. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +88 -0
  12. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +6 -6
  13. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +3 -3
  14. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +64 -0
  15. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +64 -4
  16. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +3 -3
  17. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +69 -0
  18. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +11 -11
  19. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +97 -0
  20. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +18 -18
  21. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +18 -6
  22. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +5 -5
  23. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +34 -11
  24. package/extensions/aadl/memo.package.yaml +1 -1
  25. package/extensions/cloud/memo.package.yaml +1 -1
  26. package/extensions/container/memo.package.yaml +1 -1
  27. package/extensions/messaging/memo.package.yaml +1 -1
  28. package/extensions/ros/memo.package.yaml +1 -1
  29. package/methodologies/default/memo.package.yaml +1 -1
  30. package/methodologies/gpca/memo.package.yaml +1 -1
  31. package/ontology/memo.package.yaml +1 -1
  32. package/package.json +1 -1
  33. package/profile/memo.package.yaml +1 -1
  34. package/src/architecture/functional/behavior/memo_behavior.sysml +8 -1
  35. package/src/architecture/functional/functions/memo_functions.sysml +16 -2
  36. package/src/architecture/implementation/ui/memo_ui.sysml +46 -20
  37. package/src/core/enumerations/memo_enumerations.sysml +49 -13
  38. package/src/memo_namespaces.sysml +2 -0
  39. package/src/viewpoints/clinical/clinical_viewpoint.sysml +3 -4
  40. package/src/viewpoints/context/context_viewpoint.sysml +3 -5
  41. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +3 -5
  42. package/src/viewpoints/definitions/memo_stakeholders_concerns.sysml +192 -0
  43. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +94 -6
  44. package/src/viewpoints/functional/functional_viewpoint.sysml +3 -4
  45. package/src/viewpoints/logical/logical_viewpoint.sysml +3 -4
  46. package/src/viewpoints/operational/operational_viewpoint.sysml +3 -4
  47. package/src/viewpoints/physical/physical_viewpoint.sysml +3 -4
  48. package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -4
  49. package/src/viewpoints/risk/risk_viewpoint.sysml +3 -4
  50. package/src/viewpoints/software/software_viewpoint.sysml +3 -4
  51. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +3 -5
  52. package/src/viewpoints/usability/usability_viewpoint.sysml +3 -4
  53. package/src/viewpoints/verification/verification_viewpoint.sysml +3 -4
@@ -3,6 +3,7 @@ package memo_viewpoints_requirements_requirements_viewpoint {
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
+ private import memo_viewpoints_stakeholders_concerns::*;
6
7
 
7
8
  private import memo_core_common::*;
8
9
  private import memo_core_common::MemoIdentity;
@@ -12,16 +13,14 @@ package memo_viewpoints_requirements_requirements_viewpoint {
12
13
  @MemoIdentity { :>> shortDescription = "Shows stakeholder needs and their decomposition into system, software, and hardware requirements."; }
13
14
  attribute :>> description = "Default viewpoint derived from the requirements layer for requirements traceability — the chain from stakeholder need through system, software, and hardware requirements, supporting IEC 62304 §5.1.1 and ISO 13485 §7.3.3.";
14
15
  attribute :>> purpose = "Communicate requirements decomposition and traceability.";
15
- attribute :>> audience = (AudienceKind::regulatoryEngineer, AudienceKind::systemArchitect);
16
+ ref :>> stakeholders = (RegulatoryEngineer, SystemArchitect);
16
17
  attribute :>> stage = WorkflowStageKind::requirements;
17
18
  attribute :>> abstractionLevel = "requirements";
18
19
  attribute :>> outputKind = (ViewOutputKind::diagram, ViewOutputKind::matrix);
19
20
  attribute :>> presentationKind = (PresentationKind::traceMatrix);
20
- attribute :>> concernKinds = (ConcernKind::regulatory, ConcernKind::safety);
21
- attribute :>> includedLayers = ("requirements");
21
+ ref :>> framedConcerns = (RegulatoryConcern, SafetyConcern);
22
22
  attribute :>> explorerLane = "assurance";
23
23
  attribute :>> explorerOrder = 1;
24
- attribute :>> allowedElementKinds = ("Need", "Requirement");
25
24
  attribute :>> userExtensible = true;
26
25
  }
27
26
  }
@@ -3,6 +3,7 @@ package memo_viewpoints_risk_risk_viewpoint {
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
+ private import memo_viewpoints_stakeholders_concerns::*;
6
7
 
7
8
  private import memo_core_common::*;
8
9
  private import memo_core_common::MemoIdentity;
@@ -12,16 +13,14 @@ package memo_viewpoints_risk_risk_viewpoint {
12
13
  @MemoIdentity { :>> shortDescription = "Shows hazards, risks, controls, and assurance links."; }
13
14
  attribute :>> description = "Default viewpoint derived from the risk layer for ISO 14971-style reasoning across hazard, hazardous situation, harm, control, and verification evidence.";
14
15
  attribute :>> purpose = "Communicate safety risk chains and controls.";
15
- attribute :>> audience = (AudienceKind::safetyEngineer);
16
+ ref :>> stakeholders = (SafetyEngineer);
16
17
  attribute :>> stage = WorkflowStageKind::risk;
17
18
  attribute :>> abstractionLevel = "analysis";
18
19
  attribute :>> outputKind = (ViewOutputKind::table);
19
20
  attribute :>> presentationKind = (PresentationKind::riskTable);
20
- attribute :>> concernKinds = (ConcernKind::safety, ConcernKind::regulatory);
21
- attribute :>> includedLayers = ("risk", "assurance");
21
+ ref :>> framedConcerns = (SafetyConcern, RegulatoryConcern);
22
22
  attribute :>> explorerLane = "assurance";
23
23
  attribute :>> explorerOrder = 2;
24
- attribute :>> allowedElementKinds = ("SafetyRelatedCharacteristic", "HazardCause", "Hazard", "SequenceOfEvents", "HazardousSituation", "Harm", "Risk", "RiskControlMeasure", "ResidualRisk", "Benefit", "OverallResidualRiskEvaluation", "VerificationCase");
25
24
  attribute :>> userExtensible = true;
26
25
  }
27
26
  }
@@ -3,6 +3,7 @@ package memo_viewpoints_software_software_viewpoint {
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
+ private import memo_viewpoints_stakeholders_concerns::*;
6
7
 
7
8
  private import memo_core_common::*;
8
9
  private import memo_core_common::MemoIdentity;
@@ -12,16 +13,14 @@ package memo_viewpoints_software_software_viewpoint {
12
13
  @MemoIdentity { :>> shortDescription = "Shows software systems, components, SOUP, and software interfaces."; }
13
14
  attribute :>> description = "Default viewpoint derived from the software structure layer for IEC 62304 software architecture description — software item decomposition, SOUP inventory, and software-to-software interfaces, distinct from system-level logical decomposition.";
14
15
  attribute :>> purpose = "Describe the software architecture for IEC 62304 design documentation.";
15
- attribute :>> audience = (AudienceKind::softwareArchitect);
16
+ ref :>> stakeholders = (SoftwareArchitect);
16
17
  attribute :>> stage = WorkflowStageKind::architecture;
17
18
  attribute :>> abstractionLevel = "software";
18
19
  attribute :>> outputKind = (ViewOutputKind::diagram);
19
20
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
20
- attribute :>> concernKinds = (ConcernKind::safety, ConcernKind::reliability);
21
- attribute :>> includedLayers = ("software_structure", "interfaces");
21
+ ref :>> framedConcerns = (SafetyConcern, ReliabilityConcern);
22
22
  attribute :>> explorerLane = "architecture";
23
23
  attribute :>> explorerOrder = 4;
24
- attribute :>> allowedElementKinds = ("SoftwareSystem", "SoftwareModule", "SoftwareModule[moduleKind=soup]", "Interface");
25
24
  attribute :>> userExtensible = true;
26
25
  }
27
26
  }
@@ -3,6 +3,7 @@ package memo_viewpoints_ui_layout_ui_layout_viewpoint {
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
+ private import memo_viewpoints_stakeholders_concerns::*;
6
7
 
7
8
  private import memo_core_common::*;
8
9
  private import memo_core_common::MemoIdentity;
@@ -12,17 +13,14 @@ package memo_viewpoints_ui_layout_ui_layout_viewpoint {
12
13
  @MemoIdentity { :>> shortDescription = "Shows screen captures with the UI element tree laid out over them."; }
13
14
  attribute :>> description = "Frames the user interface spatially: a captured rendering of a screen, and the UIElement tree laid out over it by each element's bounds. Supports IEC 62366-1 use-related design review and the UI description in the software design specification, by making 'which control is this, and what does it do' answerable from the picture. There is one tree, not two — the elements carrying the geometry are the same elements carrying the requirements, functions, use errors, and risk controls.";
14
15
  attribute :>> purpose = "Review the interface as the user sees it, with every functional area backed by a design record.";
15
- attribute :>> audience = (AudienceKind::usabilityEngineer, AudienceKind::softwareArchitect, AudienceKind::safetyEngineer);
16
+ ref :>> stakeholders = (UsabilityEngineer, SoftwareArchitect, SafetyEngineer);
16
17
  attribute :>> stage = WorkflowStageKind::architecture;
17
18
  attribute :>> abstractionLevel = "implementation";
18
19
  attribute :>> outputKind = (ViewOutputKind::diagram, ViewOutputKind::documentSection);
19
20
  attribute :>> presentationKind = (PresentationKind::screenLayout);
20
- attribute :>> concernKinds = (ConcernKind::usability, ConcernKind::safety);
21
- attribute :>> includedLayers = ("implementation");
21
+ ref :>> framedConcerns = (UsabilityConcern, SafetyConcern);
22
22
  attribute :>> explorerLane = "architecture";
23
23
  attribute :>> explorerOrder = 4;
24
- attribute :>> allowedElementKinds = ("ScreenCapture", "UIElement", "UserInterface");
25
- attribute :>> allowedRelationshipKinds = ("CapturesScreen", "NavigatesTo", "Composes", "satisfy", "ElementTriggersAction");
26
24
  attribute :>> defaultViewKind = DiagramViewKind::geometry;
27
25
  attribute :>> userExtensible = true;
28
26
  }
@@ -3,6 +3,7 @@ package memo_viewpoints_usability_usability_viewpoint {
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
+ private import memo_viewpoints_stakeholders_concerns::*;
6
7
 
7
8
  private import memo_core_common::*;
8
9
  private import memo_core_common::MemoIdentity;
@@ -12,16 +13,14 @@ package memo_viewpoints_usability_usability_viewpoint {
12
13
  @MemoIdentity { :>> shortDescription = "Shows use contexts, actors, use errors, and usability requirements."; }
13
14
  attribute :>> description = "Default viewpoint derived from the context and requirements layers for IEC 62366-1 usability engineering — actors, use contexts, identified use errors, and requirements tagged with the usability concern. Reuses existing context-layer elements (Actor, UseContext, UseError) rather than a separate usability layer.";
14
15
  attribute :>> purpose = "Communicate use-related hazards and usability requirements for the device.";
15
- attribute :>> audience = (AudienceKind::usabilityEngineer, AudienceKind::safetyEngineer);
16
+ ref :>> stakeholders = (UsabilityEngineer, SafetyEngineer);
16
17
  attribute :>> stage = WorkflowStageKind::requirements;
17
18
  attribute :>> abstractionLevel = "usability";
18
19
  attribute :>> outputKind = (ViewOutputKind::documentSection);
19
20
  attribute :>> presentationKind = (PresentationKind::narrativeSection);
20
- attribute :>> concernKinds = (ConcernKind::usability, ConcernKind::safety);
21
- attribute :>> includedLayers = ("context", "requirements");
21
+ ref :>> framedConcerns = (UsabilityConcern, SafetyConcern);
22
22
  attribute :>> explorerLane = "assurance";
23
23
  attribute :>> explorerOrder = 4;
24
- attribute :>> allowedElementKinds = ("Actor", "UseContext", "UseError", "Requirement");
25
24
  attribute :>> userExtensible = true;
26
25
  }
27
26
  }
@@ -3,6 +3,7 @@ package memo_viewpoints_verification_verification_viewpoint {
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
+ private import memo_viewpoints_stakeholders_concerns::*;
6
7
 
7
8
  private import memo_core_common::*;
8
9
  private import memo_core_common::MemoIdentity;
@@ -12,16 +13,14 @@ package memo_viewpoints_verification_verification_viewpoint {
12
13
  @MemoIdentity { :>> shortDescription = "Shows verification cases, validation cases, and the evidence they produce, traced to requirements."; }
13
14
  attribute :>> description = "Default viewpoint derived from the requirements and assurance layers for V&V coverage — which requirements are verified/validated, by which case, and what evidence was produced, supporting ISO 13485 §7.3.6/§7.3.7 and IEC 62304 §5.7/§5.8.";
14
15
  attribute :>> purpose = "Communicate verification and validation coverage against requirements.";
15
- attribute :>> audience = (AudienceKind::verificationEngineer);
16
+ ref :>> stakeholders = (VerificationEngineer);
16
17
  attribute :>> stage = WorkflowStageKind::verificationStage;
17
18
  attribute :>> abstractionLevel = "verification";
18
19
  attribute :>> outputKind = (ViewOutputKind::matrix);
19
20
  attribute :>> presentationKind = (PresentationKind::traceMatrix);
20
- attribute :>> concernKinds = (ConcernKind::safety, ConcernKind::regulatory);
21
- attribute :>> includedLayers = ("requirements", "assurance");
21
+ ref :>> framedConcerns = (SafetyConcern, RegulatoryConcern);
22
22
  attribute :>> explorerLane = "assurance";
23
23
  attribute :>> explorerOrder = 5;
24
- attribute :>> allowedElementKinds = ("Requirement", "VerificationCase", "ValidationCase", "MemoEvidence");
25
24
  attribute :>> userExtensible = true;
26
25
  }
27
26
  }