La programación modular divide un programa en módulos independientes que realizan tareas específicas. Cada módulo se analiza y codifica por separado para permitir la programación concurrente y la modificación de módulos sin afectar a otros. La programación estructurada utiliza tres estructuras básicas de control (secuencia, selección y repetición) y un enfoque de diseño descendente para descomponer un problema en pasos de refinamiento jerárquicos.