textual-notation-of-model/packages/features/middleware/mw_functional_architecture.sysml
2 view(s) · 143 declared member(s) view source on GitHub
view mwFunctionalBehaviorView
| Viewpoint | selectedFunctionalBehaviorViewpoint (SystemFunctionalBreakdownStructureViewpoint) |
|---|---|
| Concern | functionalBehaviorConcern |
| Render | asTreeDiagram |
| Exposes | MiddlewareIntegrationFunctionalFlowMiddlewareIntegrationFunctionalFlow::translateSignalMiddlewareIntegrationFunctionalFlow::proxyDiagnosticsMiddlewareIntegrationFunctionalFlow::coordinateLifecycleMiddlewareIntegrationFunctionalFlow::forwardHealthMiddlewareIntegrationFunctionalFlow::coordinateUpdateMiddlewareIntegrationFunctionalFlow::bindServiceMiddlewareIntegrationFunctionalFlow::protectSafetyPath |
| Source | textual-notation-of-model/packages/features/middleware/mw_functional_architecture.sysml:335 |
Hover a model element for details open raw SVG.
view mwFunctionalInterfaceView
| 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/mw_functional_architecture.sysml:351 |
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_MWFunctionalArchitecture {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_MWOperationalContext::Features::Middleware::OperationalContext::*;20 private import DE4SDV_MWRequirements::Features::Middleware::Requirements::*;21 private import SAF_Viewpoints::*;2223 part incMW006 : FeatureIncrement {24 doc /* INC-MW-006: middleware integration functional architecture. */25 }2627 part functionalSignalDefinitionGap : DeferredProductLineScope {28 doc /* GAP-MW-013: Functional signal names, units, freshness criteria, and conversion rules are not yet enumerated. */29 }3031 part lifecycleVocabularyGap : DeferredProductLineScope {32 doc /* GAP-MW-014: Lifecycle state vocabulary and transition timing are not yet baselined. */33 }3435 part safetyPathFunctionalOwnershipGap : DeferredProductLineScope {36 doc /* GAP-MW-015: Functional ownership of safety-path protection remains unresolved until system architecture and safety analysis. */37 }3839 item def VehicleSignalAccessRequest {40 doc /* Functional request for a vehicle signal required by an ADAS application use case. */41 }4243 item def VehicleSignalAccessResponse {44 doc /* Functional response containing a vehicle signal value and its health/freshness status. */45 }4647 item def DiagnosticAccessRequest {48 doc /* Functional request for middleware or vehicle diagnostic status. */49 }5051 item def DiagnosticAccessResponse {52 doc /* Functional diagnostic status returned to the ADAS application. */53 }5455 item def LifecycleCoordinationRequest {56 doc /* Functional lifecycle request exchanged between the ADAS application and middleware boundary. */57 }5859 item def LifecycleCoordinationStatus {60 doc /* Functional lifecycle state made observable at the integration boundary. */61 }6263 item def HealthForwardingStatus {64 doc /* Functional health and availability status forwarded to the ADAS application. */65 }6667 item def UpdateCoordinationRequest {68 doc /* Functional request or notification for middleware integration update coordination. */69 }7071 item def UpdateCoordinationStatus {72 doc /* Functional status indicating whether an update preserves required integration interfaces. */73 }7475 item def ServiceBindingRequest {76 doc /* Functional request to discover and bind a required middleware service. */77 }7879 item def ServiceBindingStatus {80 doc /* Functional result of service discovery, authentication, and binding. */81 }8283 item def SafetyPathProtectionStatus {84 doc /* Functional status indicating whether non-safety middleware failure is contained at the intervention boundary. */85 }8687 action def TranslateVehicleSignal {88 in signalRequest : VehicleSignalAccessRequest;89 out signalResponse : VehicleSignalAccessResponse;90 }9192 action def ProxyDiagnosticAccess {93 in diagnosticRequest : DiagnosticAccessRequest;94 out diagnosticResponse : DiagnosticAccessResponse;95 }9697 action def CoordinateLifecycle {98 in lifecycleRequest : LifecycleCoordinationRequest;99 out lifecycleStatus : LifecycleCoordinationStatus;100101 exhibit state lifecycleStates {102 state uninitialized;103 state initializing;104 state operational;105 state degraded;106 state shuttingDown;107 transition first uninitialized then initializing;108 transition initializing then operational;109 transition operational then degraded;110 transition degraded then operational;111 transition operational then shuttingDown;112 transition degraded then shuttingDown;113 }114 }115116 action def ForwardServiceHealth {117 in healthStatus : HealthStatus;118 out forwardedHealth : HealthForwardingStatus;119120 exhibit state healthStates {121 state unavailable;122 state degraded;123 state available;124 transition first unavailable then degraded;125 transition degraded then available;126 transition available then degraded;127 transition degraded then unavailable;128 }129 }130131 action def CoordinateIntegrationUpdate {132 in updateNotification : UpdateNotification;133 out updateStatus : UpdateCoordinationStatus;134 }135136 action def DiscoverAndBindService {137 in bindingRequest : ServiceBindingRequest;138 out bindingStatus : ServiceBindingStatus;139140 exhibit state connectionStates {141 state undiscovered;142 state discovered;143 state authenticating;144 state bound;145 state failed;146 transition first undiscovered then discovered;147 transition discovered then authenticating;148 transition authenticating then bound;149 transition discovered then failed;150 transition authenticating then failed;151 transition bound then failed;152 transition failed then discovered;153 }154 }155156 action def ProtectEmergencyInterventionPath {157 in middlewareHealth : HealthForwardingStatus;158 in lifecycleStatus : LifecycleCoordinationStatus;159 out safetyPathStatus : SafetyPathProtectionStatus;160 }161162 action def MiddlewareIntegrationFunctionalFlow {163 in item signalRequest : VehicleSignalAccessRequest;164 in item diagnosticRequest : DiagnosticAccessRequest;165 in item lifecycleRequest : LifecycleCoordinationRequest;166 in item healthStatus : HealthStatus;167 in item updateNotification : UpdateNotification;168 in item bindingRequest : ServiceBindingRequest;169 out item signalResponse : VehicleSignalAccessResponse;170 out item diagnosticResponse : DiagnosticAccessResponse;171 out item lifecycleStatus : LifecycleCoordinationStatus;172 out item forwardedHealth : HealthForwardingStatus;173 out item updateStatus : UpdateCoordinationStatus;174 out item bindingStatus : ServiceBindingStatus;175 out item safetyPathStatus : SafetyPathProtectionStatus;176177 action translateSignal : TranslateVehicleSignal {178 in signalRequest = MiddlewareIntegrationFunctionalFlow::signalRequest;179 out signalResponse = MiddlewareIntegrationFunctionalFlow::signalResponse;180 }181 action proxyDiagnostics : ProxyDiagnosticAccess {182 in diagnosticRequest = MiddlewareIntegrationFunctionalFlow::diagnosticRequest;183 out diagnosticResponse = MiddlewareIntegrationFunctionalFlow::diagnosticResponse;184 }185 action coordinateLifecycle : CoordinateLifecycle {186 in lifecycleRequest = MiddlewareIntegrationFunctionalFlow::lifecycleRequest;187 out lifecycleStatus = MiddlewareIntegrationFunctionalFlow::lifecycleStatus;188 }189 action forwardHealth : ForwardServiceHealth {190 in healthStatus = MiddlewareIntegrationFunctionalFlow::healthStatus;191 out forwardedHealth = MiddlewareIntegrationFunctionalFlow::forwardedHealth;192 }193 action coordinateUpdate : CoordinateIntegrationUpdate {194 in updateNotification = MiddlewareIntegrationFunctionalFlow::updateNotification;195 out updateStatus = MiddlewareIntegrationFunctionalFlow::updateStatus;196 }197 action bindService : DiscoverAndBindService {198 in bindingRequest = MiddlewareIntegrationFunctionalFlow::bindingRequest;199 out bindingStatus = MiddlewareIntegrationFunctionalFlow::bindingStatus;200 }201 action protectSafetyPath : ProtectEmergencyInterventionPath {202 in middlewareHealth = forwardHealth.forwardedHealth;203 in lifecycleStatus = coordinateLifecycle.lifecycleStatus;204 out safetyPathStatus = MiddlewareIntegrationFunctionalFlow::safetyPathStatus;205 }206207 first coordinateLifecycle then protectSafetyPath;208 first forwardHealth then protectSafetyPath;209 }210211 action middlewareIntegrationFunctionalFlow : MiddlewareIntegrationFunctionalFlow;212213 port def VehicleSignalAccessInbound {214 in item signalRequest : VehicleSignalAccessRequest;215 }216 port def VehicleSignalAccessOutbound {217 out item signalResponse : VehicleSignalAccessResponse;218 }219 port def DiagnosticAccessInbound {220 in item diagnosticRequest : DiagnosticAccessRequest;221 }222 port def DiagnosticAccessOutbound {223 out item diagnosticResponse : DiagnosticAccessResponse;224 }225 port def LifecycleCoordinationInbound {226 in item lifecycleRequest : LifecycleCoordinationRequest;227 }228 port def LifecycleCoordinationOutbound {229 out item lifecycleStatus : LifecycleCoordinationStatus;230 }231 port def HealthStatusInbound {232 in item healthStatus : HealthStatus;233 }234 port def HealthStatusOutbound {235 out item forwardedHealth : HealthForwardingStatus;236 }237 port def UpdateCoordinationInbound {238 in item updateNotification : UpdateNotification;239 }240 port def UpdateCoordinationOutbound {241 out item updateStatus : UpdateCoordinationStatus;242 }243 port def ServiceBindingInbound {244 in item bindingRequest : ServiceBindingRequest;245 }246 port def ServiceBindingOutbound {247 out item bindingStatus : ServiceBindingStatus;248 }249 port def SafetyPathStatusOutbound {250 out item safetyPathStatus : SafetyPathProtectionStatus;251 }252253 part def MiddlewareFunctionalBoundary {254 port signalAccessIn : VehicleSignalAccessInbound;255 port signalAccessOut : VehicleSignalAccessOutbound;256 port diagnosticAccessIn : DiagnosticAccessInbound;257 port diagnosticAccessOut : DiagnosticAccessOutbound;258 port lifecycleIn : LifecycleCoordinationInbound;259 port lifecycleOut : LifecycleCoordinationOutbound;260 port healthIn : HealthStatusInbound;261 port healthOut : HealthStatusOutbound;262 port updateIn : UpdateCoordinationInbound;263 port updateOut : UpdateCoordinationOutbound;264 port serviceBindingIn : ServiceBindingInbound;265 port serviceBindingOut : ServiceBindingOutbound;266 port safetyPathOut : SafetyPathStatusOutbound;267268 perform middlewareIntegrationFunctionalFlow : MiddlewareIntegrationFunctionalFlow {269 in item signalRequest = signalAccessIn.signalRequest;270 in item diagnosticRequest = diagnosticAccessIn.diagnosticRequest;271 in item lifecycleRequest = lifecycleIn.lifecycleRequest;272 in item healthStatus = healthIn.healthStatus;273 in item updateNotification = updateIn.updateNotification;274 in item bindingRequest = serviceBindingIn.bindingRequest;275 out item signalResponse = signalAccessOut.signalResponse;276 out item diagnosticResponse = diagnosticAccessOut.diagnosticResponse;277 out item lifecycleStatus = lifecycleOut.lifecycleStatus;278 out item forwardedHealth = healthOut.forwardedHealth;279 out item updateStatus = updateOut.updateStatus;280 out item bindingStatus = serviceBindingOut.bindingStatus;281 out item safetyPathStatus = safetyPathOut.safetyPathStatus;282 }283 }284285 part middlewareFunctionalBoundary : MiddlewareFunctionalBoundary;286287 dependency functionalSignalAccessDerivedFromRequirement288 from TranslateVehicleSignal289 to DE4SDV_MWRequirements::Features::Middleware::Requirements::reqProvideMiddlewareSignalAccess;290 dependency functionalDiagnosticAccessDerivedFromRequirement291 from ProxyDiagnosticAccess292 to DE4SDV_MWRequirements::Features::Middleware::Requirements::reqProvideMiddlewareDiagnosticAccess;293 dependency functionalLifecycleDerivedFromRequirement294 from CoordinateLifecycle295 to DE4SDV_MWRequirements::Features::Middleware::Requirements::reqCoordinateMiddlewareLifecycle;296 dependency functionalHealthDerivedFromRequirement297 from ForwardServiceHealth298 to DE4SDV_MWRequirements::Features::Middleware::Requirements::reqMonitorMiddlewareHealth;299 dependency functionalUpdateDerivedFromRequirement300 from CoordinateIntegrationUpdate301 to DE4SDV_MWRequirements::Features::Middleware::Requirements::reqCoordinateMiddlewareUpdates;302 dependency functionalSafetyPathDerivedFromRequirement303 from ProtectEmergencyInterventionPath304 to DE4SDV_MWRequirements::Features::Middleware::Requirements::reqIsolateSafetyPath;305 dependency functionalBindingDerivedFromRequirement306 from DiscoverAndBindService307 to DE4SDV_MWRequirements::Features::Middleware::Requirements::reqProvideServiceDiscovery;308 dependency functionalAuthenticationBoundaryDerivedFromRequirement309 from DiscoverAndBindService310 to DE4SDV_MWRequirements::Features::Middleware::Requirements::reqAuthenticateServiceBinding;311312 concern functionalBehaviorConcern : FunctionalBehaviorConcern {313 subject;314 stakeholder systemsEngineer : SystemsEngineer;315 stakeholder reviewer : OpenSourceReviewer;316 }317 concern functionalInterfaceConcern : FunctionalInterfaceConcern {318 subject;319 stakeholder systemsEngineer : SystemsEngineer;320 stakeholder reviewer : OpenSourceReviewer;321 }322 concern functionalProcessConcern : SystemProcessConcern {323 doc /*324 * Known issue: no context-partitioned system process is modeled in325 * this increment. MiddlewareIntegrationFunctionalFlow owns functions326 * and two internal successions, but it has no SOI/context swimlanes or327 * boundary-crossing context actions. That internal behavior is not a328 * substitute for a SAF System Process, so no process view is published.329 */330 subject;331 stakeholder systemsEngineer : SystemsEngineer;332 stakeholder reviewer : OpenSourceReviewer;333 }334335 view mwFunctionalBehaviorView {336 viewpoint selectedFunctionalBehaviorViewpoint : SystemFunctionalBreakdownStructureViewpoint {337 frame functionalBehaviorConcern;338 }339 expose MiddlewareIntegrationFunctionalFlow;340 expose MiddlewareIntegrationFunctionalFlow::translateSignal;341 expose MiddlewareIntegrationFunctionalFlow::proxyDiagnostics;342 expose MiddlewareIntegrationFunctionalFlow::coordinateLifecycle;343 expose MiddlewareIntegrationFunctionalFlow::forwardHealth;344 expose MiddlewareIntegrationFunctionalFlow::coordinateUpdate;345 expose MiddlewareIntegrationFunctionalFlow::bindService;346 expose MiddlewareIntegrationFunctionalFlow::protectSafetyPath;347 attribute showAnnotationRows = false;348 attribute maxCompartmentEntries = 0;349 render asTreeDiagram;350 }351 view mwFunctionalInterfaceView {352 viewpoint selectedFunctionalInterfaceViewpoint : SystemInterfaceDefinitionViewpoint {353 frame functionalInterfaceConcern;354 }355 expose FunctionalArchitecture::VehicleSignalAccessInbound;356 expose FunctionalArchitecture::VehicleSignalAccessOutbound;357 expose FunctionalArchitecture::DiagnosticAccessInbound;358 expose FunctionalArchitecture::DiagnosticAccessOutbound;359 expose FunctionalArchitecture::LifecycleCoordinationInbound;360 expose FunctionalArchitecture::LifecycleCoordinationOutbound;361 expose FunctionalArchitecture::HealthStatusInbound;362 expose FunctionalArchitecture::HealthStatusOutbound;363 expose FunctionalArchitecture::UpdateCoordinationInbound;364 expose FunctionalArchitecture::UpdateCoordinationOutbound;365 expose FunctionalArchitecture::ServiceBindingInbound;366 expose FunctionalArchitecture::ServiceBindingOutbound;367 expose FunctionalArchitecture::SafetyPathStatusOutbound;368 attribute showAnnotationRows = false;369 render asTreeDiagram;370 }371 }372 }373 }374}375