La ingeniería de requisitos es la primera fase del ciclo de vida del software en la que se produce una especificación a partir de ideas informales. Los requisitos incluyen requisitos de información, funcionales y no funcionales. Los requisitos tienen ámbito, características, audiencia y representación. Detectar errores en los requisitos iniciales puede prevenir incrementos sustanciales en los costos del proyecto.