This document discusses module level concepts in software engineering. It defines a module as a logically separable part of a program. It describes two criteria for producing modular designs: coupling and cohesion. Coupling refers to the degree of interdependence between modules, with the aim being low coupling or loose coupling between modules. Cohesion measures the strength of relationships within a module, with the aim being high cohesion where a module focuses on a single function. The document outlines different types of coupling and cohesion and their definitions.