Service A has become increasingly difficult to maintain. Its core service logic has become bloated and
convoluted because it has been updated numerous times during which additional functionality was
added to interact with the database and the legacy system and to support interaction with Service
Consumers A and B (via the two service contracts) as well as interaction directly with Service
Consumer C .
What steps can be taken to solve these problems and to prevent them from happening again in the
future?