La ingeniería de software integra matemáticas, ciencias de la computación y prácticas de ingeniería para sistematizar el proceso creativo de desarrollo de software. El software ha contribuido al desarrollo de las ciencias a través de aplicaciones estadísticas, análisis de datos y sistemas de información. La ingeniería de software busca reducir los riesgos de falla en el desarrollo de software a través de técnicas basadas en experiencia previa.