deliver a complex system to the customer, one piece at a time
divide the whole system into a number of units, each of which is quite cohesive within itself and is not too dependent on others and to design and develop the units separately
using models at each phase of system's life cycle
using sophisticated subroutine libraries available in shareware
Modular design involves breaking a system into independent, cohesive units that can be developed and maintained separately, which enhances manageability.