textual-notation-of-model/packages/features/middleware/middleware_functional_architecture.sysml

2 view(s) · 149 declared member(s) Jump to source ↓

view middlewareFunctionalArchitectureViewsource ↓

ViewpointselectedFunctionalBehaviorViewpoint (SystemFunctionalBreakdownStructureViewpoint)
ConcernfunctionalBehaviorConcern
RenderasTreeDiagram
ExposesMiddlewareIntegrationFunctionalFlow
MiddlewareIntegrationFunctionalFlow::translateSignal
MiddlewareIntegrationFunctionalFlow::proxyDiagnostics
MiddlewareIntegrationFunctionalFlow::coordinateLifecycle
MiddlewareIntegrationFunctionalFlow::forwardHealth
MiddlewareIntegrationFunctionalFlow::coordinateUpdate
MiddlewareIntegrationFunctionalFlow::bindService
MiddlewareIntegrationFunctionalFlow::protectSafetyPath
Sourcetextual-notation-of-model/packages/features/middleware/middleware_functional_architecture.sysml:353
diagram-middlewareFunctionalArchitectureView.svg
«view» middlewareFunctionalArchitectureView expose MiddlewareIntegrationFunctionalFlow expose MiddlewareIntegrationFunctionalFlow::translateSignal expose MiddlewareIntegrationFunctionalFlow::proxyDiagnostics expose MiddlewareIntegrationFunctionalFlow::coordinateLifecycle expose MiddlewareIntegrationFunctionalFlow::forwardHealth expose MiddlewareIntegrationFunctionalFlow::coordinateUpdate expose MiddlewareIntegrationFunctionalFlow::bindService expose MiddlewareIntegrationFunctionalFlow::protectSafetyPath «action def» MiddlewareIntegrationFunctionalFlow «action» translateSignal : TranslateVehicleSignal «action» proxyDiagnostics : ProxyDiagnosticAccess «action» coordinateLifecycle : CoordinateLifecycle «action» forwardHealth : ForwardServiceHealth «action» coordinateUpdate : CoordinateIntegrationUpdate «action» bindService : DiscoverAndBindService «action» protectSafetyPath : ProtectEmergencyInterventionPath

Hover a model element for details open raw SVG.

view middlewareFunctionalInterfaceViewsource ↓

ViewpointselectedFunctionalInterfaceViewpoint (SystemInterfaceDefinitionViewpoint)
ConcernfunctionalInterfaceConcern
RenderasTreeDiagram
ExposesFunctionalArchitecture::VehicleSignalAccessInbound
FunctionalArchitecture::VehicleSignalAccessOutbound
FunctionalArchitecture::DiagnosticAccessInbound
FunctionalArchitecture::DiagnosticAccessOutbound
FunctionalArchitecture::LifecycleCoordinationInbound
FunctionalArchitecture::LifecycleCoordinationOutbound
FunctionalArchitecture::HealthStatusInbound
FunctionalArchitecture::HealthStatusOutbound
FunctionalArchitecture::UpdateCoordinationInbound
FunctionalArchitecture::UpdateCoordinationOutbound
FunctionalArchitecture::ServiceBindingInbound
FunctionalArchitecture::ServiceBindingOutbound
FunctionalArchitecture::SafetyPathStatusOutbound
Sourcetextual-notation-of-model/packages/features/middleware/middleware_functional_architecture.sysml:369
diagram-middlewareFunctionalInterfaceView.svg
«view» middlewareFunctionalInterfaceView expose FunctionalArchitecture::VehicleSignalAccessInbound expose FunctionalArchitecture::VehicleSignalAccessOutbound expose FunctionalArchitecture::DiagnosticAccessInbound expose FunctionalArchitecture::DiagnosticAccessOutbound expose FunctionalArchitecture::LifecycleCoordinationInbound expose FunctionalArchitecture::LifecycleCoordinationOutbound expose FunctionalArchitecture::HealthStatusInbound expose FunctionalArchitecture::HealthStatusOutbound expose FunctionalArchitecture::UpdateCoordinationInbound expose FunctionalArchitecture::UpdateCoordinationOutbound expose FunctionalArchitecture::ServiceBindingInbound expose FunctionalArchitecture::ServiceBindingOutbound expose FunctionalArchitecture::SafetyPathStatusOutbound «port def» VehicleSignalAccessInbound items signalRequest : VehicleSignalAccessRequest «port def» VehicleSignalAccessOutbound items signalResponse : VehicleSignalAccessResponse «port def» DiagnosticAccessInbound items diagnosticRequest : DiagnosticAccessRequest «port def» DiagnosticAccessOutbound items diagnosticResponse : DiagnosticAccessResponse «port def» LifecycleCoordinationInbound items lifecycleRequest : LifecycleCoordinationRequest «port def» LifecycleCoordinationOutbound items lifecycleStatus : LifecycleCoordinationStatus «port def» HealthStatusInbound items healthStatus : HealthStatus «port def» HealthStatusOutbound items forwardedHealth : HealthForwardingStatus «port def» UpdateCoordinationInbound items updateNotification : UpdateNotification «port def» UpdateCoordinationOutbound items updateStatus : UpdateCoordinationStatus «port def» ServiceBindingInbound items bindingRequest : ServiceBindingRequest «port def» ServiceBindingOutbound items bindingStatus : ServiceBindingStatus «port def» SafetyPathStatusOutbound items safetyPathStatus : SafetyPathProtectionStatus

Hover a model element for details open raw SVG.

Source

1/*2 * DE4SDV middleware functional architecture model slice.3 *4 * INC-MW-006 defines middleware integration functions, information exchanges,5 * and a functional boundary. It does not allocate functions to logical or6 * physical components, select a middleware implementation, or decide the7 * final safety-path architecture.8 */910package DE4SDV_MiddlewareFunctionalArchitecture {11  package Features {12    package Middleware {13      package FunctionalArchitecture {14        private import Views::*;15        private import StandardViewDefinitions::*;16        private import DE4SDV_Stakeholders::*;17        private import DE4SDV_MethodContext::*;18        private import DE4SDV_ProductLine::*;19        private import DE4SDV_MiddlewareOperationalContext::Features::Middleware::OperationalContext::*;20        private import DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::*;21        private import DE4SDV_MiddlewareStakeholderNeeds::Features::Middleware::StakeholderNeeds::System1Product::*;22        private import SAF_Viewpoints::*;2324        part incMW006 : FeatureIncrement {25          doc /* INC-MW-006: middleware integration functional architecture. */26        }2728        part functionalSignalDefinitionGap : DeferredProductLineScope {29          doc /* GAP-MW-013: Functional signal names, units, freshness criteria, and conversion rules are not yet enumerated. */30        }3132        part lifecycleVocabularyGap : DeferredProductLineScope {33          doc /* GAP-MW-014: Lifecycle state vocabulary and transition timing are not yet baselined. */34        }3536        part safetyPathFunctionalOwnershipGap : DeferredProductLineScope {37          doc /* GAP-MW-015: Functional ownership of safety-path protection remains unresolved until logical architecture and safety analysis. */38        }3940        item def VehicleSignalAccessRequest {41          doc /* Functional request for a vehicle signal required by an ADAS application use case. */42        }4344        item def VehicleSignalAccessResponse {45          doc /* Functional response containing a vehicle signal value and its health/freshness status. */46        }4748        item def DiagnosticAccessRequest {49          doc /* Functional request for middleware or vehicle diagnostic status. */50        }5152        item def DiagnosticAccessResponse {53          doc /* Functional diagnostic status returned to the ADAS application. */54        }5556        item def LifecycleCoordinationRequest {57          doc /* Functional lifecycle request exchanged between the ADAS application and middleware boundary. */58        }5960        item def LifecycleCoordinationStatus {61          doc /* Functional lifecycle state made observable at the integration boundary. */62        }6364        item def HealthForwardingStatus {65          doc /* Functional health and availability status forwarded to the ADAS application. */66        }6768        item def UpdateCoordinationRequest {69          doc /* Functional request or notification for middleware integration update coordination. */70        }7172        item def UpdateCoordinationStatus {73          doc /* Functional status indicating whether an update preserves required integration interfaces. */74        }7576        item def ServiceBindingRequest {77          doc /* Functional request to discover and bind a required middleware service. */78        }7980        item def ServiceBindingStatus {81          doc /* Functional result of service discovery, authentication, and binding. */82        }8384        item def SafetyPathProtectionStatus {85          doc /* Functional status indicating whether non-safety middleware failure is contained at the intervention boundary. */86        }8788        action def TranslateVehicleSignal {89          doc /* Conceptual responsibility for translating ADAS application vehicle-signal access through the selected middleware integration boundary (REQ-MW-001). */90          in signalRequest : VehicleSignalAccessRequest;91          out signalResponse : VehicleSignalAccessResponse;92        }9394        action def ProxyDiagnosticAccess {95          doc /* Conceptual responsibility for proxying diagnostic requests and responses needed to determine the health of the middleware integration boundary (REQ-MW-002). */96          in diagnosticRequest : DiagnosticAccessRequest;97          out diagnosticResponse : DiagnosticAccessResponse;98        }99100        action def CoordinateLifecycle {101          doc /* Conceptual responsibility for coordinating middleware integration lifecycle state (startup, readiness, degradation) with the ADAS application (REQ-MW-003). */102          in lifecycleRequest : LifecycleCoordinationRequest;103          out lifecycleStatus : LifecycleCoordinationStatus;104105          exhibit state lifecycleStates {106            state uninitialized;107            state initializing;108            state operational;109            state degraded;110            state shuttingDown;111            transition first uninitialized then initializing;112            transition initializing then operational;113            transition operational then degraded;114            transition degraded then operational;115            transition operational then shuttingDown;116            transition degraded then shuttingDown;117          }118        }119120        action def ForwardServiceHealth {121          doc /* Conceptual responsibility for monitoring middleware integration boundary health and providing an observable indication when it degrades (REQ-MW-004). */122          in healthStatus : HealthStatus;123          out forwardedHealth : HealthForwardingStatus;124125          exhibit state healthStates {126            state unavailable;127            state degraded;128            state available;129            transition first unavailable then degraded;130            transition degraded then available;131            transition available then degraded;132            transition degraded then unavailable;133          }134        }135136        action def CoordinateIntegrationUpdate {137          doc /* Conceptual responsibility for coordinating middleware integration updates with the ADAS application lifecycle so an update does not silently interrupt an operational use case (REQ-MW-005). */138          in updateNotification : UpdateNotification;139          out updateStatus : UpdateCoordinationStatus;140        }141142        action def DiscoverAndBindService {143          doc /* Conceptual responsibility for discovering and binding the middleware services required by the selected ADAS application integration configuration (REQ-MW-007). */144          in bindingRequest : ServiceBindingRequest;145          out bindingStatus : ServiceBindingStatus;146147          exhibit state connectionStates {148            state undiscovered;149            state discovered;150            state authenticating;151            state bound;152            state failed;153            transition first undiscovered then discovered;154            transition discovered then authenticating;155            transition authenticating then bound;156            transition discovered then failed;157            transition authenticating then failed;158            transition bound then failed;159            transition failed then discovered;160          }161        }162163        action def ProtectEmergencyInterventionPath {164          doc /* Conceptual responsibility for protecting the emergency intervention path: contain non-safety middleware failure so it cannot cause uncontrolled emergency intervention behavior (REQ-MW-006). */165          in middlewareHealth : HealthForwardingStatus;166          in lifecycleStatus : LifecycleCoordinationStatus;167          out safetyPathStatus : SafetyPathProtectionStatus;168        }169170        action def MiddlewareIntegrationFunctionalFlow {171          in item signalRequest : VehicleSignalAccessRequest;172          in item diagnosticRequest : DiagnosticAccessRequest;173          in item lifecycleRequest : LifecycleCoordinationRequest;174          in item healthStatus : HealthStatus;175          in item updateNotification : UpdateNotification;176          in item bindingRequest : ServiceBindingRequest;177          out item signalResponse : VehicleSignalAccessResponse;178          out item diagnosticResponse : DiagnosticAccessResponse;179          out item lifecycleStatus : LifecycleCoordinationStatus;180          out item forwardedHealth : HealthForwardingStatus;181          out item updateStatus : UpdateCoordinationStatus;182          out item bindingStatus : ServiceBindingStatus;183          out item safetyPathStatus : SafetyPathProtectionStatus;184185          action translateSignal : TranslateVehicleSignal {186            in signalRequest = MiddlewareIntegrationFunctionalFlow::signalRequest;187            out signalResponse = MiddlewareIntegrationFunctionalFlow::signalResponse;188          }189          action proxyDiagnostics : ProxyDiagnosticAccess {190            in diagnosticRequest = MiddlewareIntegrationFunctionalFlow::diagnosticRequest;191            out diagnosticResponse = MiddlewareIntegrationFunctionalFlow::diagnosticResponse;192          }193          action coordinateLifecycle : CoordinateLifecycle {194            in lifecycleRequest = MiddlewareIntegrationFunctionalFlow::lifecycleRequest;195            out lifecycleStatus = MiddlewareIntegrationFunctionalFlow::lifecycleStatus;196          }197          action forwardHealth : ForwardServiceHealth {198            in healthStatus = MiddlewareIntegrationFunctionalFlow::healthStatus;199            out forwardedHealth = MiddlewareIntegrationFunctionalFlow::forwardedHealth;200          }201          action coordinateUpdate : CoordinateIntegrationUpdate {202            in updateNotification = MiddlewareIntegrationFunctionalFlow::updateNotification;203            out updateStatus = MiddlewareIntegrationFunctionalFlow::updateStatus;204          }205          action bindService : DiscoverAndBindService {206            in bindingRequest = MiddlewareIntegrationFunctionalFlow::bindingRequest;207            out bindingStatus = MiddlewareIntegrationFunctionalFlow::bindingStatus;208          }209          action protectSafetyPath : ProtectEmergencyInterventionPath {210            in middlewareHealth = forwardHealth.forwardedHealth;211            in lifecycleStatus = coordinateLifecycle.lifecycleStatus;212            out safetyPathStatus = MiddlewareIntegrationFunctionalFlow::safetyPathStatus;213          }214215          first coordinateLifecycle then protectSafetyPath;216          first forwardHealth then protectSafetyPath;217        }218219        action middlewareIntegrationFunctionalFlow : MiddlewareIntegrationFunctionalFlow;220221        port def VehicleSignalAccessInbound {222          in item signalRequest : VehicleSignalAccessRequest;223        }224        port def VehicleSignalAccessOutbound {225          out item signalResponse : VehicleSignalAccessResponse;226        }227        port def DiagnosticAccessInbound {228          in item diagnosticRequest : DiagnosticAccessRequest;229        }230        port def DiagnosticAccessOutbound {231          out item diagnosticResponse : DiagnosticAccessResponse;232        }233        port def LifecycleCoordinationInbound {234          in item lifecycleRequest : LifecycleCoordinationRequest;235        }236        port def LifecycleCoordinationOutbound {237          out item lifecycleStatus : LifecycleCoordinationStatus;238        }239        port def HealthStatusInbound {240          in item healthStatus : HealthStatus;241        }242        port def HealthStatusOutbound {243          out item forwardedHealth : HealthForwardingStatus;244        }245        port def UpdateCoordinationInbound {246          in item updateNotification : UpdateNotification;247        }248        port def UpdateCoordinationOutbound {249          out item updateStatus : UpdateCoordinationStatus;250        }251        port def ServiceBindingInbound {252          in item bindingRequest : ServiceBindingRequest;253        }254        port def ServiceBindingOutbound {255          out item bindingStatus : ServiceBindingStatus;256        }257        port def SafetyPathStatusOutbound {258          out item safetyPathStatus : SafetyPathProtectionStatus;259        }260261        part def MiddlewareFunctionalBoundary {262          port signalAccessIn : VehicleSignalAccessInbound;263          port signalAccessOut : VehicleSignalAccessOutbound;264          port diagnosticAccessIn : DiagnosticAccessInbound;265          port diagnosticAccessOut : DiagnosticAccessOutbound;266          port lifecycleIn : LifecycleCoordinationInbound;267          port lifecycleOut : LifecycleCoordinationOutbound;268          port healthIn : HealthStatusInbound;269          port healthOut : HealthStatusOutbound;270          port updateIn : UpdateCoordinationInbound;271          port updateOut : UpdateCoordinationOutbound;272          port serviceBindingIn : ServiceBindingInbound;273          port serviceBindingOut : ServiceBindingOutbound;274          port safetyPathOut : SafetyPathStatusOutbound;275276          perform middlewareIntegrationFunctionalFlow : MiddlewareIntegrationFunctionalFlow {277            in item signalRequest = signalAccessIn.signalRequest;278            in item diagnosticRequest = diagnosticAccessIn.diagnosticRequest;279            in item lifecycleRequest = lifecycleIn.lifecycleRequest;280            in item healthStatus = healthIn.healthStatus;281            in item updateNotification = updateIn.updateNotification;282            in item bindingRequest = serviceBindingIn.bindingRequest;283            out item signalResponse = signalAccessOut.signalResponse;284            out item diagnosticResponse = diagnosticAccessOut.diagnosticResponse;285            out item lifecycleStatus = lifecycleOut.lifecycleStatus;286            out item forwardedHealth = healthOut.forwardedHealth;287            out item updateStatus = updateOut.updateStatus;288            out item bindingStatus = serviceBindingOut.bindingStatus;289            out item safetyPathStatus = safetyPathOut.safetyPathStatus;290          }291        }292293        part middlewareFunctionalBoundary : MiddlewareFunctionalBoundary;294295        dependency functionalSignalAccessDerivedFromRequirement296          from TranslateVehicleSignal297          to DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::reqProvideMiddlewareSignalAccess;298        dependency functionalDiagnosticAccessDerivedFromRequirement299          from ProxyDiagnosticAccess300          to DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::reqProvideMiddlewareDiagnosticAccess;301        dependency functionalLifecycleDerivedFromRequirement302          from CoordinateLifecycle303          to DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::reqCoordinateMiddlewareLifecycle;304        dependency functionalHealthDerivedFromRequirement305          from ForwardServiceHealth306          to DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::reqMonitorMiddlewareHealth;307        dependency functionalUpdateDerivedFromRequirement308          from CoordinateIntegrationUpdate309          to DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::reqCoordinateMiddlewareUpdates;310        dependency functionalSafetyPathDerivedFromRequirement311          from ProtectEmergencyInterventionPath312          to DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::reqIsolateSafetyPath;313        dependency functionalBindingDerivedFromRequirement314          from DiscoverAndBindService315          to DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::reqProvideServiceDiscovery;316        dependency functionalAuthenticationBoundaryDerivedFromRequirement317          from DiscoverAndBindService318          to DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::reqAuthenticateServiceBinding;319320        dependency functionalBoundaryRequirementsTrace321          from middlewareFunctionalBoundary322          to DE4SDV_MiddlewareRequirements::Features::Middleware::Requirements::reqProvideMiddlewareSignalAccess;323        dependency functionalBoundaryNeedsTrace324          from middlewareFunctionalBoundary325          to DE4SDV_MiddlewareStakeholderNeeds::Features::Middleware::StakeholderNeeds::System1Product::needMiddlewareIntegration;326        dependency functionalBoundaryOperationalTrace327          from middlewareFunctionalBoundary328          to DE4SDV_MiddlewareOperationalContext::Features::Middleware::OperationalContext::'integrate ADAS with vehicle platform';329330        concern functionalBehaviorConcern : FunctionalBehaviorConcern {331          subject;332          stakeholder systemsEngineer : SystemsEngineer;333          stakeholder reviewer : OpenSourceReviewer;334        }335        concern functionalInterfaceConcern : FunctionalInterfaceConcern {336          subject;337          stakeholder systemsEngineer : SystemsEngineer;338          stakeholder reviewer : OpenSourceReviewer;339        }340        concern functionalProcessConcern : SystemProcessConcern {341          doc /*342           * Known issue: no context-partitioned system process is modeled in343           * this increment. MiddlewareIntegrationFunctionalFlow owns functions344           * and two internal successions, but it has no SOI/context swimlanes or345           * boundary-crossing context actions. That internal behavior is not a346           * substitute for a SAF System Process, so no process view is published.347           */348          subject;349          stakeholder systemsEngineer : SystemsEngineer;350          stakeholder reviewer : OpenSourceReviewer;351        }352353        view middlewareFunctionalArchitectureView {354          viewpoint selectedFunctionalBehaviorViewpoint : SystemFunctionalBreakdownStructureViewpoint {355            frame functionalBehaviorConcern;356          }357          expose MiddlewareIntegrationFunctionalFlow;358          expose MiddlewareIntegrationFunctionalFlow::translateSignal;359          expose MiddlewareIntegrationFunctionalFlow::proxyDiagnostics;360          expose MiddlewareIntegrationFunctionalFlow::coordinateLifecycle;361          expose MiddlewareIntegrationFunctionalFlow::forwardHealth;362          expose MiddlewareIntegrationFunctionalFlow::coordinateUpdate;363          expose MiddlewareIntegrationFunctionalFlow::bindService;364          expose MiddlewareIntegrationFunctionalFlow::protectSafetyPath;365          attribute showAnnotationRows = false;366          attribute maxCompartmentEntries = 0;367          render asTreeDiagram;368        }369        view middlewareFunctionalInterfaceView {370          viewpoint selectedFunctionalInterfaceViewpoint : SystemInterfaceDefinitionViewpoint {371            frame functionalInterfaceConcern;372          }373          expose FunctionalArchitecture::VehicleSignalAccessInbound;374          expose FunctionalArchitecture::VehicleSignalAccessOutbound;375          expose FunctionalArchitecture::DiagnosticAccessInbound;376          expose FunctionalArchitecture::DiagnosticAccessOutbound;377          expose FunctionalArchitecture::LifecycleCoordinationInbound;378          expose FunctionalArchitecture::LifecycleCoordinationOutbound;379          expose FunctionalArchitecture::HealthStatusInbound;380          expose FunctionalArchitecture::HealthStatusOutbound;381          expose FunctionalArchitecture::UpdateCoordinationInbound;382          expose FunctionalArchitecture::UpdateCoordinationOutbound;383          expose FunctionalArchitecture::ServiceBindingInbound;384          expose FunctionalArchitecture::ServiceBindingOutbound;385          expose FunctionalArchitecture::SafetyPathStatusOutbound;386          attribute showAnnotationRows = false;387          render asTreeDiagram;388        }389      }390    }391  }392}393