FSW Architecture Documentation

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.

Development View Extended

Development View Extended

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 Descriptions

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.

Process View Downlink

Process View Downlink

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.

Process View Uplink

Process View Uplink

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.

Process View Mode Change

Process View Mode Change

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.

Development View Steps

Development View Steps

Package diagram illustrating the platform specific layer (top) and platform-agnostic layer (bottom). Arrows represent dependency, following the UML 2 notation.

Logical View

Logical View

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.

Physical View

Physical View

Deployment diagram illustrating the hardware components of the system and the software running on each hardware component.

Scenario View FDIR

Scenario View FDIR

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.