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 y distribuidos que aumentaron la complejidad. El proceso de desarrollo de software traduce las necesidades de los usuarios en requisitos, diseño e implementación