Software-defined satellites