abstract System
abstract FunctionalAnalysis
abstract HardwareArchitecture
abstract DeviceNodeClassification
abstract Deployment
abstract FunctionalAnalysisComponent
deployedTo -> DeviceNode 1..2 // Most functions are at most double redundant
xor implementation
software
abstract AnalysisFunction : FunctionalAnalysisComponent
abstract FunctionalDevice : FunctionalAnalysisComponent
abstract FunctionConnector
sender -> FunctionalAnalysisComponent
receiver -> FunctionalAnalysisComponent
enum DeviceNodeType = SmartDeviceNode | EEDeviceNode | PowerDeviceNode
abstract DeviceNode
[ some fac : FunctionalAnalysisComponent | this in fac.deployedTo ]
type -> DeviceNodeType
AutoPilot : System
AP_FAA : FunctionalAnalysis
frontDriverLidar : FunctionalDevice
frontPassengerLidar : FunctionalDevice
lidarProcessing : AnalysisFunction
pointCloudClustering : AnalysisFunction
dynamicObjectDetection : AnalysisFunction
trajectoryPlanningAP : AnalysisFunction
AP_HA : HardwareArchitecture
dn -> AP_DN
AP_DN : DeviceNodeClassification// devices
visionProcessor1 : DeviceNode ?
visionProcessor2 : DeviceNode ?
algorithmProcessor1 : DeviceNode ?
algorithmProcessor2 : DeviceNode ?
frontDriverLidarSensor : DeviceNode ?
frontPassengerLidarSensor : DeviceNode ?
frontRadarSensor : DeviceNode ?
AP_Dpl : Deployment// deployment of functions to devices
fa -> AP_FAA
ha -> AP_HA
[ no AP_DN.visionProcessor1 ]
[ no AP_DN.algorithmProcessor1 ]
[ no AP_DN.frontRadarSensor ]