La ingeniería de requerimientos comprende determinar las necesidades y condiciones para un nuevo o modificado software, considerando los requerimientos de las partes interesadas. Su objetivo es alcanzar un óptimo estado de los requerimientos antes del diseño para lograr requerimientos medibles, comprobables y sin contradicciones. La ingeniería de requerimientos permite gestionar las necesidades del proyecto de forma estructurada para mejorar la predicción de cronogramas, disminuir costos y retrasos, y mejorar la calidad del software.