SICSDA: an Adaptive Configurable Distributed Software Architecture Applied to Satellite Control Missions