The science of modular software design is to package responsibilities into cohesive, loosely coupled modules that satisfy user outcomes.

The art of modular software design is to package responsibilities into cohesive, loosely coupled modules that satisfy user outcomes in a way that makes sense.