El Comité de Ciencia de la OTAN organizó dos conferencias famosas para discutir temas críticos en el desarrollo de software
La primera conferencia se celebró en Garmisch, Alemania, en 1968, y fue seguida por una segunda conferencia en Roma en 1969. Más de cincuenta personas de once países asistieron a la conferencia de Garmisch, incluido Edsger Dijkstra, quien realizó un importante trabajo teórico sobre especificación formal y verificación. Las conferencias de la OTAN destacaron los problemas que existían en el sector del software a fines de la década de 1960, y el término "crisis de software" se acuñó para referirse a estos. Hubo problemas con el presupuesto y los excesos de programación, así como con la calidad y confiabilidad del software entregado.
Las matemáticas desempeñan un papel clave en la ingeniería clásica y, en algunas situaciones, también pueden ayudar a los ingenieros de software en la entrega de productos de software de alta calidad.
La conferencia condujo al nacimiento de la ingeniería de software como una disciplina en sí misma y a darse cuenta de que la programación es bastante distinta de la ciencia y las matemáticas.
Esto incluye una base sólida en el diseño y las matemáticas requeridas para construir productos de software seguros
La ingeniería de software no es solo programación. Requiere que el ingeniero establezca con precisión los requisitos que el producto de software debe satisfacer y luego producir diseños que cumplan con estos requisitos. El proyecto debe planificarse y entregarse a tiempo y presupuesto.
Los requisitos deben proporcionar una descripción precisa del problema a resolver, es decir, debe ser evidente a partir de los requisitos qué es y qué no se requiere.