Breaking Down a Monolithic Software: A Case for Microservices vs. Self-Contained Systems