La ingeniería de software es una disciplina que ofrece métodos y técnicas para desarrollar software de calidad para resolver problemas. Involucra aplicar conocimiento científico en el diseño y construcción de programas de computadora. En los primeros años del software, la programación era un "arte" sin métodos sistemáticos, pero luego surgieron técnicas interactivas y sistemas en tiempo real para controlar procesos. La tercera era trajo sistemas distribuidos y redes que aumentaron la complejidad.