Software Architecture Design For Federated Learning Systems