A Genetic Algorithm to Find the Adequate Granularity for Service Interfaces