textual-notation-of-model/packages/features/middleware/middleware_functional_architecture.sysml
2 view(s) · 149 declared member(s) Jump to source ↓
view middlewareFunctionalArchitectureViewsource ↓
| Viewpoint | selectedFunctionalBehaviorViewpoint (SystemFunctionalBreakdownStructureViewpoint) |
|---|---|
| Concern | functionalBehaviorConcern |
| Render | asTreeDiagram |
| Exposes | MiddlewareIntegrationFunctionalFlowMiddlewareIntegrationFunctionalFlow::translateSignalMiddlewareIntegrationFunctionalFlow::proxyDiagnosticsMiddlewareIntegrationFunctionalFlow::coordinateLifecycleMiddlewareIntegrationFunctionalFlow::forwardHealthMiddlewareIntegrationFunctionalFlow::coordinateUpdateMiddlewareIntegrationFunctionalFlow::bindServiceMiddlewareIntegrationFunctionalFlow::protectSafetyPath |
| Source | textual-notation-of-model/packages/features/middleware/middleware_functional_architecture.sysml:353 |
Hover a model element for details open raw SVG.
view middlewareFunctionalInterfaceViewsource ↓
| Viewpoint | selectedFunctionalInterfaceViewpoint (SystemInterfaceDefinitionViewpoint) |
|---|---|
| Concern | functionalInterfaceConcern |
| Render | asTreeDiagram |
| Exposes | FunctionalArchitecture::VehicleSignalAccessInboundFunctionalArchitecture::VehicleSignalAccessOutboundFunctionalArchitecture::DiagnosticAccessInboundFunctionalArchitecture::DiagnosticAccessOutboundFunctionalArchitecture::LifecycleCoordinationInboundFunctionalArchitecture::LifecycleCoordinationOutboundFunctionalArchitecture::HealthStatusInboundFunctionalArchitecture::HealthStatusOutboundFunctionalArchitecture::UpdateCoordinationInboundFunctionalArchitecture::UpdateCoordinationOutboundFunctionalArchitecture::ServiceBindingInboundFunctionalArchitecture::ServiceBindingOutboundFunctionalArchitecture::SafetyPathStatusOutbound |
| Source | textual-notation-of-model/packages/features/middleware/middleware_functional_architecture.sysml:369 |
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