Maximize internal interaction (cohesion).Cannot simply chop a program into modules to get modularly.Reduces cost of testing, debugging and maintenance.Modularity enhances design clarity, eases implementation.
Modularity supports independence of models.Coupling and Cohesion Source: Pfleeger, S., Software Engineering Theory and Practice.