Breaking a complex problem or system into parts that are easier to conceive, understand, program, and maintain