[en] Software requirements prioritization plays a crucial role in software development. It can be viewed as the process of ordering requirements by determining which requirements must be done first and which can be done later. Powerful requirements prioritization techniques are of paramount importance to finish the implementation on time and within budget. Many factors affect requirement prioritization such as stakeholder expectations, complexity, dependency, scalability, risk, and cost. Therefore, finding the proper order of requirements is a challenging process. Hence, different types of requirements prioritization techniques have been developed to support this task. In this survey, we propose a novel classification that can classify the prioritization techniques under two major classes: relative and exact prioritization techniques class, where each class is divided into two subclasses. We depend in our classification on the way the value of ranking is given to the requirement, either explicitly as a specific value in the case of the exact prioritization techniques class, or implicitly in the case of the Relative prioritization technique class. An overview of fifteen different requirements prioritization techniques are presented and organized according to the proposed classification criteria's. Moreover, we make a comparison between methods that are related to the same subclass to analyze their strengths and weaknesses. Based on the comparison results, the properties for each proposed subclass of techniques are identified. Depending on these properties, we present some recommendations to help project managers in the process of selecting the most suitable technique to prioritize requirements based on their project characteristics (number of requirements, time, cost, and accuracy).

[es] La priorización de requisitos de software desempeña un papel crucial en el desarrollo de software. Puede verse como el proceso de ordenar los requisitos determinando cuáles deben hacerse primero y cuáles pueden hacerse después. Unas técnicas potentes de priorización de requisitos son de vital importancia para terminar la implementación a tiempo y sin salirse del presupuesto. Muchos factores afectan a la priorización de requisitos, como las expectativas de las partes interesadas, la complejidad, la dependencia, la escalabilidad, el riesgo y el coste. Por lo tanto, encontrar el orden adecuado de los requisitos es un proceso difícil. De ahí que se hayan desarrollado distintos tipos de técnicas de priorización de requisitos para apoyar esta tarea. En este estudio, proponemos una clasificación novedosa que puede clasificar las técnicas de priorización en dos clases principales: clase de técnicas de priorización relativa y clase de técnicas de priorización exacta, donde cada clase se divide en dos subclases. En nuestra clasificación dependemos de la forma en que se da el valor de clasificación al requisito, ya sea explícitamente como un valor específico en el caso de la clase de técnicas de priorización exacta, o implícitamente en el caso de la clase de técnicas de priorización relativa. Se presenta una visión general de quince técnicas diferentes de priorización de requisitos, organizadas según los criterios de clasificación propuestos. Además, se realiza una comparación entre métodos relacionados con la misma subclase para analizar sus puntos fuertes y débiles. A partir de los resultados de la comparación, se identifican las propiedades de cada subclase de técnicas propuesta. En función de estas propiedades, presentamos algunas recomendaciones para ayudar a los gestores de proyectos en el proceso de selección de la técnica más adecuada para priorizar requisitos en función de las características del proyecto (número de requisitos, tiempo, coste y precisión).