This document provides an overview of the Flight Software (FSW) architecture through various UML diagrams and descriptions of key connections.
This page accompanies the ECSA'25 paper "Nanosatellite Flight Software: A Rigorous Software Architecture Perspective" by Christoforos Vasilakis, Alexandros Tsagkaropoulos, Angelos Motsios, Christos Tsigkanos and Dionysios Reisis.
Please see the paper for more information and context.
Extended component diagram of the FSW architecture. The ports are type-designated: (a) output ports in white; (b) asynchronous ports in light gray; (c) synchronous ports in dark; (d) guarded ports in black.
Connection | Description |
---|---|
BufferAlloc | For requests to the BufferMng to provide memory buffers. |
BufferDealloc | For requests to the BufferMng to make memory buffers available for usage by other components. |
CmdRecv | To send commands to the CmdDispatcher component. |
CmdSend | To receive commands from the CmdDispatcher component. |
Com | To send data to the Framer component. |
FatalEvent | To sends fatal events to the FatalHandler component. |
FilePkt | To handle file packets for data transfer from the FileDownlink component. |
FrameDealloc | To deallocate frame buffers used by the FileUplink component. |
FrameRecv | For the FileUplink to receive data frames. |
GetMode | To retrieve the current operational mode of the satellite from the Controller component. |
LogEvent | To send events to the FDIRController component. |
Recv | To receive data from CommCSP component. |
Send | To send data to CommCSP component. |
Tlm | To sends telemetry to the TlmChan component. |
Sequence diagram presenting the Process View of the downlink mechanism. The top section presents the telemetry downlink procedure, while the bottom section illustrates the file downlink procedure. Filled arrows indicate asynchronous calls, unfilled arrows denote synchronous calls and alternative (alt) frame models conditional execution, following the UML 2 notation.
Sequence diagram presenting the Process View of the uplink mechanism. The top section presents the file uplink procedure, while the bottom section illustrates the command uplink procedure. Filled arrows indicate asynchronous calls, unfilled arrows denote synchronous calls and alternative (alt) frame models conditional execution, following the UML 2 notation.
Sequence diagram presenting the Process View of the mode change mechanism. Filled arrows indicate asynchronous calls, unfilled arrows denote synchronous calls and alternative (alt) frame models conditional execution, following the UML 2 notation.
Package diagram illustrating the platform specific layer (top) and platform-agnostic layer (bottom). Arrows represent dependency, following the UML 2 notation.
Fragment of the Class diagram representing the Logical View of the FSW architecture. The diagram categorizes classes based on their functional areas and explicitly illustrates significant relationships among them. Dashed arrows indicate dependency and solid, hollow arrows denote generalization, following the UML 2 notation.
Deployment diagram illustrating the hardware components of the system and the software running on each hardware component.
Activity diagram illustrating the FDIR use case scenario. Activity diagram following the UML 2 notation, where rounded rectangles represent activities, diamonds denote decision points, and arrows indicate the control flow between actions. Black circles signify the start and end of the process. The diagram models the FDIR procedure, detailing how events are generated, logged, and assessed for recovery actions. If an event's severity is high, it is forwarded for further evaluation. If recovery is required, commands are issued to adjust the systemâs mode of operation; otherwise, the event is logged for future reference.