memo_architecture_logical_structure
SysML API
Namespace hierarchy
memo → memo::architecture → memo::architecture::logical → memo::architecture::logical::structure
Packages
| Package |
memo_architecture_logical_structure |
Imports
| Visibility |
Target |
| private |
Metaobjects::SemanticMetadata |
| private |
ScalarValues::* |
| private |
memo_core_common::* |
| private |
memo_core_enumerations::* |
| private |
memo_core_relationships::* |
| private |
memo_architecture_logical_interfaces::Interface |
Declarations
| Name |
SysML kind |
Description |
Specializes |
FlowContentKind |
enum def |
What a logical connection carries: information and control, but also energy, material, fluid, and mechanical force (§10). |
— |
ChannelRoleKind |
enum def |
Controlled values for channel role: primary, secondary, redundant, diverse, monitor, watchdog, interlock, independentProtection. |
— |
ComponentRoleKind |
enum def |
Controlled values for component role: channel, dataStore, controlElement, userInterface, externalSystem, generic. |
— |
SystemTypeKind |
enum def |
The discipline a logical block is realized in. Orthogonal to componentRole: a subsystem may be software, a system may be hardware, and a block whose realization is not yet decided stays logical. This does NOT relocate the element.… |
— |
SystemOriginKind |
enum def |
Who builds a system or system of systems: this organisation, or others. Distinct from componentRole, which says what a logical component DOES (an externalSystem is a role in a context).… |
— |
SystemOfSystems |
part def |
Three types rather than three role values, because they differ in what they may CONTAIN — and containment legality cannot live on an attribute. The allowed children are declared as typed part features, which is how SysML v2 already states "what may be contained".… |
LogicalComponent |
System |
part def |
System definition specializing LogicalComponent. |
LogicalComponent |
Subsystem |
part def |
Subsystem definition specializing LogicalComponent. |
LogicalComponent |
LogicalComponent |
part def |
Logical component definition specializing MemoPart. |
MemoPart |
LogicalPort |
port def |
Boundary features and contracts. |
MemoPort |
LogicalInterface |
interface def |
Typed relationship from LogicalPort to any element. |
Interface |
LogicalExchangeItem |
item def |
Logical exchange item definition specializing MemoItem. |
MemoItem |
LogicalConnector |
connection def |
A typed logical connection between two components' ports. |
MemoRelationship |
LogicalExchange |
flow def |
Typed relationship for logical exchange. |
— |
LogicalTransfer |
flow def |
The concrete exchange a model types its logical flows by; the ends stay untyped for the reason above. |
LogicalExchange |
LogicalBehavior |
part def |
States and modes of the logical solution (kept distinct from UI state and from physical device configuration). |
MemoPart |
IsolationBoundary |
part def |
Isolation, fault containment, and trust boundaries (§10). |
MemoPart |
FaultContainmentRegion |
part def |
Fault containment region definition specializing MemoPart. |
MemoPart |
IndependentOf |
connection def |
Claimed independence between channels (common-cause defense). |
MemoRelationship |
FlowContentKind
| Property |
Value |
| Description |
What a logical connection carries: information and control, but also energy, material, fluid, and mechanical force (§10). |
| Kind |
enum def |
| Abstract |
No |
| Specializes |
— |
| Owning package |
memo_architecture_logical_structure |
ChannelRoleKind
| Property |
Value |
| Description |
Controlled values for channel role: primary, secondary, redundant, diverse, monitor, watchdog, interlock, independentProtection. |
| Kind |
enum def |
| Abstract |
No |
| Specializes |
— |
| Owning package |
memo_architecture_logical_structure |
ComponentRoleKind
enum def ComponentRoleKind
| Property |
Value |
| Description |
Controlled values for component role: channel, dataStore, controlElement, userInterface, externalSystem, generic. |
| Kind |
enum def |
| Abstract |
No |
| Specializes |
— |
| Owning package |
memo_architecture_logical_structure |
SystemTypeKind
| Property |
Value |
| Description |
The discipline a logical block is realized in. Orthogonal to componentRole: a subsystem may be software, a system may be hardware, and a block whose realization is not yet decided stays logical. This does NOT relocate the element.… |
| Kind |
enum def |
| Abstract |
No |
| Specializes |
— |
| Owning package |
memo_architecture_logical_structure |
SystemOriginKind
enum def SystemOriginKind
| Property |
Value |
| Description |
Who builds a system or system of systems: this organisation, or others. Distinct from componentRole, which says what a logical component DOES (an externalSystem is a role in a context).… |
| Kind |
enum def |
| Abstract |
No |
| Specializes |
— |
| Owning package |
memo_architecture_logical_structure |
SystemOfSystems
part def SystemOfSystems specializes LogicalComponent
| Property |
Value |
| Description |
Three types rather than three role values, because they differ in what they may CONTAIN — and containment legality cannot live on an attribute. The allowed children are declared as typed part features, which is how SysML v2 already states "what may be contained".… |
| Kind |
part def |
| Abstract |
No |
| Specializes |
LogicalComponent |
| Owning package |
memo_architecture_logical_structure |
System
part def System specializes LogicalComponent
| Property |
Value |
| Description |
System definition specializing LogicalComponent. |
| Kind |
part def |
| Abstract |
No |
| Specializes |
LogicalComponent |
| Owning package |
memo_architecture_logical_structure |
Subsystem
part def Subsystem specializes LogicalComponent
| Property |
Value |
| Description |
Subsystem definition specializing LogicalComponent. |
| Kind |
part def |
| Abstract |
No |
| Specializes |
LogicalComponent |
| Owning package |
memo_architecture_logical_structure |
LogicalComponent
part def LogicalComponent specializes MemoPart
| Property |
Value |
| Description |
Logical component definition specializing MemoPart. |
| Kind |
part def |
| Abstract |
No |
| Specializes |
MemoPart |
| Owning package |
memo_architecture_logical_structure |
LogicalPort
port def LogicalPort specializes MemoPort
| Property |
Value |
| Description |
Boundary features and contracts. |
| Kind |
port def |
| Abstract |
No |
| Specializes |
MemoPort |
| Owning package |
memo_architecture_logical_structure |
LogicalInterface
interface def LogicalInterface specializes Interface
| Property |
Value |
| Description |
Typed relationship from LogicalPort to any element. |
| Kind |
interface def |
| Abstract |
No |
| Specializes |
Interface |
| Owning package |
memo_architecture_logical_structure |
LogicalExchangeItem
item def LogicalExchangeItem specializes MemoItem
| Property |
Value |
| Description |
Logical exchange item definition specializing MemoItem. |
| Kind |
item def |
| Abstract |
No |
| Specializes |
MemoItem |
| Owning package |
memo_architecture_logical_structure |
LogicalConnector
connection def LogicalConnector :> MemoRelationship
| Property |
Value |
| Description |
A typed logical connection between two components' ports. |
| Kind |
connection def |
| Abstract |
No |
| Specializes |
MemoRelationship |
| Owning package |
memo_architecture_logical_structure |
LogicalExchange
abstract flow def LogicalExchange
| Property |
Value |
| Description |
Typed relationship for logical exchange. |
| Kind |
flow def |
| Abstract |
Yes |
| Specializes |
— |
| Owning package |
memo_architecture_logical_structure |
LogicalTransfer
flow def LogicalTransfer specializes LogicalExchange
| Property |
Value |
| Description |
The concrete exchange a model types its logical flows by; the ends stay untyped for the reason above. |
| Kind |
flow def |
| Abstract |
No |
| Specializes |
LogicalExchange |
| Owning package |
memo_architecture_logical_structure |
LogicalBehavior
part def LogicalBehavior specializes MemoPart
| Property |
Value |
| Description |
States and modes of the logical solution (kept distinct from UI state and from physical device configuration). |
| Kind |
part def |
| Abstract |
No |
| Specializes |
MemoPart |
| Owning package |
memo_architecture_logical_structure |
IsolationBoundary
part def IsolationBoundary specializes MemoPart
| Property |
Value |
| Description |
Isolation, fault containment, and trust boundaries (§10). |
| Kind |
part def |
| Abstract |
No |
| Specializes |
MemoPart |
| Owning package |
memo_architecture_logical_structure |
FaultContainmentRegion
part def FaultContainmentRegion specializes MemoPart
| Property |
Value |
| Description |
Fault containment region definition specializing MemoPart. |
| Kind |
part def |
| Abstract |
No |
| Specializes |
MemoPart |
| Owning package |
memo_architecture_logical_structure |
IndependentOf
connection def IndependentOf :> MemoRelationship
| Property |
Value |
| Description |
Claimed independence between channels (common-cause defense). |
| Kind |
connection def |
| Abstract |
No |
| Specializes |
MemoRelationship |
| Owning package |
memo_architecture_logical_structure |
Source
architecture/logical/structure/memo_logical_structure.sysml
package memo_architecture_logical_structure {
private import Metaobjects::SemanticMetadata;
private import ScalarValues::*;
private import memo_core_common::*;
private import memo_core_enumerations::*;
private import memo_core_relationships::*;
private import memo_architecture_logical_interfaces::Interface;
enum def FlowContentKind {
enum information;
enum command;
enum status;
enum measurement;
enum alarm;
enum configuration;
enum energy;
enum material;
enum fluid;
enum mechanicalForce;
}
enum def ChannelRoleKind {
enum primary;
enum secondary;
enum redundant;
enum diverse;
enum monitor;
enum watchdog;
enum interlock;
enum independentProtection;
}
enum def ComponentRoleKind {
enum channel;
enum dataStore;
enum controlElement;
enum userInterface;
enum externalSystem;
enum generic;
}
enum def SystemTypeKind {
enum logical;
enum software;
enum hardware;
}
enum def SystemOriginKind {
/** Built by this organisation: the project delivers and verifies it. */
enum internal;
/** Built by others: the project interfaces with it and relies on what its maker states. */
enum external;
}
part def SystemOfSystems specializes LogicalComponent {
attribute systemBoundaryDescription : String;
attribute systemPrefix : String[0..1];
attribute origin : SystemOriginKind[0..1];
attribute constituentOwnership : String;
part constituentSystemOfSystems : SystemOfSystems[0..*];
part constituentSystem : System[0..*];
}
part def System specializes LogicalComponent {
attribute systemBoundaryDescription : String;
attribute origin : SystemOriginKind[0..1];
part system : System[0..*];
part subsystem : Subsystem[0..*];
part component : LogicalComponent[0..*];
}
part def Subsystem specializes LogicalComponent {
attribute systemBoundaryDescription : String;
part subsystem : Subsystem[0..*];
part component : LogicalComponent[0..*];
}
part def LogicalComponent specializes MemoPart {
attribute componentRole : ComponentRoleKind;
attribute systemType : SystemTypeKind[0..1];
attribute responsibility : String;
attribute decompositionLevel : String;
attribute safetyPartition : String;
attribute channelRole : ChannelRoleKind[0..1];
attribute diversityBasis : String;
attribute persistenceRequirement : String;
attribute integrityRequirement : String;
attribute controlLaw : String;
attribute controlledVariable : String;
attribute interactionSummary : String;
attribute externalOwner : String;
}
port def LogicalPort specializes MemoPort;
interface def LogicalInterface specializes Interface {
attribute contentKind : FlowContentKind;
end providerPort : LogicalPort;
end consumerPort : ~LogicalPort;
}
item def LogicalExchangeItem specializes MemoItem {
attribute contentKind : FlowContentKind;
}
connection def LogicalConnector :> MemoRelationship {
attribute :>> isConnector = true;
attribute contentKind : FlowContentKind;
attribute direction : DirectionKind;
end sourceComponent : LogicalComponent :>> source;
end targetComponent : LogicalComponent :>> target;
}
abstract connection logicalConnectorLinks : LogicalConnector[*];
metadata def <logicalConnector> LogicalConnectorMetadata :> SemanticMetadata {
:> annotatedElement : SysML::ConnectionDefinition;
:> annotatedElement : SysML::ConnectionUsage;
:>> baseType = logicalConnectorLinks meta SysML::Usage;
}
abstract flow def LogicalExchange {
attribute contentKind : FlowContentKind;
attribute latencyRequirement : String;
}
flow def LogicalTransfer specializes LogicalExchange {
end source;
end target;
}
part def LogicalBehavior specializes MemoPart {
attribute behaviorSummary : String;
attribute executionSemantics : String;
}
part def IsolationBoundary specializes MemoPart {
attribute boundaryKind : String;
attribute isolationMechanism : String;
}
part def FaultContainmentRegion specializes MemoPart {
attribute containmentRationale : String;
}
connection def IndependentOf :> MemoRelationship {
attribute independenceBasis : String;
end channel : LogicalComponent :>> source;
end otherChannel : LogicalComponent :>> target;
}
abstract connection independentOfLinks : IndependentOf[*];
metadata def <independentOf> IndependentOfMetadata :> SemanticMetadata {
:> annotatedElement : SysML::ConnectionDefinition;
:> annotatedElement : SysML::ConnectionUsage;
:>> baseType = independentOfLinks meta SysML::Usage;
}
}