Este documento describe diferentes métodos de ingeniería de software, incluyendo métodos heurísticos, formales y de prototipado. Los métodos heurísticos incluyen métodos estructurados, orientados a datos y orientados a objetos. Los métodos formales tratan el software matemáticamente y cubren especificación de lenguajes, refinamiento y verificación de propiedades. Los métodos de prototipado implican la creación de prototipos de software y cubren estilos, objetivos y técnicas de evaluación de prototipos.