Modularity is achieved by dividing software into modules. Good modularity is characterized by high cohesion and low coupling. Cohesion refers to how related the elements within a module are, with functional cohesion being the best. Coupling refers to interdependence between modules, with data coupling being the best. The document discusses different types of cohesion and coupling and how to design modules for high cohesion and low coupling.