La ingeniería de requerimientos se ocupa de construir software de alta calidad bajo restricciones de tiempo y presupuesto. Define los requerimientos funcionales, no funcionales y empresariales del software mediante técnicas como entrevistas, talleres, prototipos y casos de uso, pasando por fases de planificación y análisis para especificar los requerimientos.