Logo Studenta

daniel_adanza_dopazo_2023

¡Este material tiene más páginas!

Vista previa del material en texto

Aplicación de algoritmos de inteligencia artificial a la 
optimización de la calidad de requisitos mediante 
sugerencias automáticas de mejora 
 
Daniel Adanza Dopazo 
 
 
 
Tesis depositada en cumplimiento parcial de los requisitos para el 
grado de Doctor en 
 
Ciencia y tecnología informática 
 
Universidad Carlos III de Madrid 
 
 
 
Director/a (es/as): 
 
Valentín Moreno Pelayo 
Eugenio Parra Corredor 
 
Tutor/a: 
 
Valentín Moreno Pelayo 
Octubre / 2022 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Esta tesis se distribuye bajo licencia “Creative Commons Reconocimiento – No Comercial – Sin 
Obra Derivada”. 
 
 
AGRADECIMIENTOS 
 
En esta sección quería expresar mi agradecimiento a todas aquellas personas que han influido de 
una manera u otra durante el desarrollo de esta tesis y por estar ahí siempre que lo necesitaba. 
• En primer lugar, a mi director de tesis Valentín, por haberme dado la oportunidad de haber 
cursado esta tesis sin tener por qué y por haberme ayudado y guiado durante estos años de 
investigación. 
• A mi familia, en especial a mi padre por recordarme siempre de manera irónica que la 
muralla china la acabaron antes que mi doctorado. 
 
 
CONTENIDOS PUBLICADOS Y PRESENTADOS 
 
La realización de la tesis ha derivado en diferentes trabajos de investigación de manera directa e 
indirecta. 
 
• An automatic methodology for the quality enhancement of requirements using 
genetic algorithms: publicado en Information and software technology. Se propone un 
método para la clasificación de requisitos, así como también la mejora de estos mediante la 
utilización de clasificadores binarios y algoritmos genéticos para la generación de nuevas 
soluciones. En dicho artículo también se comparan las ventajas y desventajas de dicho 
enfoque con la utilización de árboles de decisión para la generación de nuevas soluciones. 
• A leakage detection system with an efficient prioritization at a District Meter Area 
Level publicado en World Environmental Water Resources Congress 2021. Se propone un 
método que utiliza clasificadores binarios y técnicas de análisis de datos para encontrar las 
fugas de agua en la estructura de abastecimiento de agua. 
• A leakage detection system extracting the most meaningful features with decision 
trees publicado en Battle of Lekage detection and isolation methods 2020. Se propone un 
método que mediante analítica de datos es capaz de extraer la información más relevante 
para los clasificadores binarios. Finalmente se utilizarán árboles de decisión para clasificar 
las fugas y los resultados serán analizados para poder localizarlas. 
• Assessing movement quality on straight leg raise using neural networks and data 
science publicado en Osteoarthritis and cartilage. Se propone un enfoque en el que se 
combina el uso de las redes neuronales con la ciencia de datos para extraer las 
características más relevantes de los movimientos realizados por cinco pacientes 
actualmente en rehabilitación. Así como también se proponen soluciones de mejora de 
dichos movimientos. 
 
 
 
Resumen: 
 
La especificación de requisitos es de vital importancia en la planificación de un 
proyecto, es aquí en donde se especifican los límites y las bases sobre las que se va 
a sustentar dicho proyecto. 
Esta tesis se ha centrado en la ingeniería de requisitos. Siendo la creación de 
requisitos de calidad, la mejora de la eficiencia y la automatización de tareas los 
objetivos principales. 
Para poder alcanzar nuestros objetivos, se cuenta con 1035 requisitos que han sido 
previamente clasificados dependiendo de su calidad y posteriormente descritos por 
26 atributos. De esta manera, los datos obtenidos sirven como muestra para 
extrapolar los conocimientos hacia cualquier otra base de datos. 
Una de las fortalezas de esta tesis es el alcance del proyecto, se ha diseñado un 
sistema capaz de adaptarse a cualquier base de requisitos. Independientemente de 
los clasificadores utilizados. Una barrera que se ha conseguido sobrepasar gracias a 
la utilización de los algoritmos genéticos. 
Para ello, se ha creado un método que se resume en los siguientes pasos: Primero se 
clasificarán los requisitos mediante la extracción de métricas de calidad que serán 
tomadas como base por el clasificador binario. En segundo lugar, se tomarán todos 
aquellos requisitos clasificados como de mala calidad y se utilizarán algoritmos 
genéticos para proponer soluciones de cambio optimizados de acuerdo con los 
costes de esfuerzo estimados. 
La principal conclusión que se puede extraer es que los algoritmos genéticos nos 
pueden ofrecer soluciones interesantes aplicables en ingeniería de requisitos. 
Obteniendo así un ahorro de costes, automatizando tareas y favoreciendo una 
planificación más sólida y eficiente en cualquier proyecto. 
Summary: 
 
The specification of requirements is of vital importance in the planning of a project, 
it is here where the limits and the bases on which the project will be based are 
specified. 
This research project has focused on requirements engineering. The main objectives 
are the creation of quality requirements, the improvement of efficiency, and the 
automation of tasks. 
To achieve our objectives, there are 1,035 requirements that have been previously 
classified depending on their quality and subsequently described by 26 attributes. 
In this way, the data obtained serve as a sample to extrapolate the knowledge to any 
other database. 
One of the strengths of the thesis is the scope of the project, a system capable of 
adapting to any base of requirements has been designed. Regardless of the 
classifiers used. A barrier that has been overcome thanks to the use of genetic 
algorithms. 
To do this, a method has been created that is summarized in the following steps: 
First, the requirements will be classified by extracting quality metrics that will be 
taken as a basis by the binary classifier. Second, all those requirements classified as 
bad will be taken and genetic algorithms will be used to propose optimized change 
solutions according to the estimated effort costs. 
The main conclusion that can be drawn is that genetic algorithms offer us interesting 
solutions applicable to requirements engineering. Thus obtaining cost savings, 
automating tasks, and favoring more solid and efficient planning in any project. 
project. 
 
Tabla de contenidos: 
 
Tabla de contenidos .................................................................................................................... 7 
Tabla de Ilustraciones .................................................................................................................. 9 
Índice de tablas .......................................................................................................................... 10 
 
Capítulo 1: Introducción .............................................................................................................. 11 
1.1 Área de investigación ....................................................................................................... 11 
1.2 Descripción del problema ................................................................................................. 11 
1.3 Importancia del problema ................................................................................................ 12 
1.4 Aproximación a la solución ............................................................................................... 13 
1.5 Validez del enfoque .......................................................................................................... 16 
 
Capítulo 2: Estado del arte ......................................................................................................... 17 
2.1 Ingeniería de requisitos ....................................................................................................18 
 2.2 Algoritmos genéticos ........................................................................................................ 30 
 2.3 Trabajos fuertemente relacionados ................................................................................. 37 
 2.4 La originalidad de la propuesta ........................................................................................ 46 
 
Capítulo 3: Hipótesis de trabajo ................................................................................................. 48 
 
Capítulo 4: Planteamiento del problema ................................................................................... 49 
 
Capítulo 5: Enfoque propuesto ................................................................................................... 53 
5.1 Descripción del escenario ................................................................................................. 53 
 5.2 Elementos del método propuesto .................................................................................... 55 
 5.3 validación del algoritmo genético .................................................................................... 61 
 5.4 Ejemplo práctico ............................................................................................................... 62 
 5.5 Experimentos realizados ................................................................................................... 68 
5.5.1 Experimento 1: Testeando diferentes clasificadores binarios ............................. 69 
5.5.2 Experimento 2: Testeando diferentes algoritmos genéticos ............................... 74 
5.5.3 Experimento 3: Ajustando la configuración del algoritmo genético .................... 79 
5.5.4 Experimento 4: Comparando el algoritmo genético con la solución óptima ....... 82 
5.6 Resultados ............................................................................................................................ 85 
 
Capítulo 6: Validación ................................................................................................................. 91 
 
Capítulo 7: Conclusiones y futuras líneas de investigación ........................................................ 93 
 
Capítulo 8: Referencias ............................................................................................................... 96 
 
Anexo A: Testeando diferentes clasificadores binarios ............................................................. 99 
 
 
 
Í ndice de ilustraciones: 
 
• Fig 1. Esquema de sobrecargas y sinónimos. (Wang et al., n.d) 
• Fig 2. Flujo de trabajo para conseguir calidad de requisitos por medio de 
razonamiento basado en casos y redes neuronales 
• Fig 3. Descripción de los procesos del método propuesto (Parra, 2016) 
• Fig 4. Descripción de los procesos del método propuesto (Parra, 2016) 
• Fig 5. Descripción del flujo de los diferentes procesos del método propuesto 
(Fuente propia). 
• Fig 6. Histograma de los principales resultados comparando el algoritmo 
genético con el coste óptimo de esfuerzo (Fuente propia) 
 
Í ndice de tablas: 
 
• Tabla 1. Resumen de los trabajos relacionados en materia de ingeniería de 
requisitos ordenados por orden cronológico (Fuente propia). 
• Tabla 2. Resumen de los trabajos relacionados sobre algoritmos genéticos 
ordenados cronológicamente (Fuente propia). 
• Tabla 3. Resumen de los trabajos fuertemente relacionados ordenados 
cronológicamente (Fuente propia). 
• Tabla 4. Contiene la estimación de coste de esfuerzo por cada uno de los 
atributos que componen la base de datos. 
• Tabla 5. Valores de los dos requisitos explicados a modo de ejemplo y el 
nombre de cada atributo (Fuente propia). 
• Tabla 6. Tasa de acierto de todos los clasificadores binarios aplicados al 
corpus de requisitos (Fuente propia). 
• Tabla 7. Ejemplo de frecuencia ficticio para el atributo número de frases para 
entender el funcionamiento del tercer algoritmo genético (Fuente propia). 
• Tabla 8 Resumen de resultados tras comparar el algoritmo genético con la 
solución óptima (Fuente propia). 
• Tabla 9 Resultados comparando las duplicidades entre el algoritmo genético 
y el valor óptimo (Fuente propia). 
• Tabla 10. Muestra la información más relevante de acuerdo con el número de 
generaciones creadas (Fuente propia). 
• Tabla 11. Muestra la información más relevante sobre el tiempo de respuesta 
para la generación de nuevas soluciones. (Fuente propia). 
Capí tulo 1: introduccio n 
 
1.1 Área de la investigación: 
 
Al inicio de todos los proyectos de ingeniería de sistemas, siempre hay una etapa de 
especificación de requisitos. Esta etapa tiene como finalidad, ofrecer un escenario 
en común que le permita tanto al cliente como a la empresa establecer unas pautas 
que serán las que sustenten el proyecto en el futuro. 
Durante esta etapa, es muy habitual que se presenten una serie de inconvenientes y 
desafíos, ambas partes tienen que llegar a un acuerdo común a pesar de tener 
visiones muy diferentes del sistema informático. 
La ingeniería de requisitos nace bajo la necesidad de solucionar este tipo de 
problemas. Consiste en un proceso de recopilar, analizar y posteriormente verificar 
las necesidades del cliente. Siempre con el objetivo de entregar una especificación 
de requisitos que sea correcta y completa. Un buen resumen de lo que significa la 
ingeniería de requisitos nos la dio Roger S. Pressman: 
 
“Ingeniería de Requerimientos ayuda a los ingenieros de software a entender mejor el 
problema en cuya solución trabajarán. Incluye el conjunto de tareas que conducen a 
comprender cuál será el impacto del software sobre el negocio, qué es lo que el cliente 
quiere y cómo interactuarán los usuarios finales con el software”. (Pressman, 2005) 
 
1.2 Descripción del problema 
 
De acuerdo con los datos aportados por “Project Management institute”. El 47% 
total de todos los fracasos de un proyecto son debidos a algún tipo de deficiencia 
dentro de la ingeniería de requisitos. Siendo los principales motivos los siguientes: 
• El producto final es entregado sin cumplir con los requisitos necesarios o sin 
identificar varios de ellos. 
• La entrega final no satisface las necesidades del cliente. 
• Se han incorporado en el proyecto requisitos que no entran en el alcance del 
mismo. 
• La estimación del coste del proyecto se hace en base a un alcance del proyecto 
equivocado. 
• Fallos en la comunicación de un requisito y, en consecuencia, una entrega 
errónea. 
• Cambios innecesarios en el producto debido a la falta de comprensión de las 
necesidades del cliente. 
Para poder afrontar todos estos desafíos existe la ingeniería de requisitos. La cual 
nos permitirá sentar una base sólida de cualquier proyecto. Para así poder evitar 
situaciones tales como la falta de profesionalidad por parte de la empresa o mal 
entendimiento de las necesidades del cliente, lo cual nos lleva un sobrecoste y a una 
baja satisfacción por parte del cliente. 
 
 
1.3 Importancia del problema. 
 
La ingeniería de requisitos juega, por lo tanto, un papel muy importante en la 
planificación de cualquier proyecto. Permitiéndonos así obtener una mayor 
satisfacción por parte del cliente y un ahorro de costes por parte de la empresa. De 
entre los principales beneficios de su aplicación podemos destacar los siguientes: 
• Mejora de la calidad del software. 
• Disminución de los costes y de los retrasos del proyecto. 
• Mejora de la capacidad de predecir cronogramas de proyectos y de sus 
resultados. 
• Permite gestionar las necesidades del proyecto de manera estructurada 
• Mejora la comunicación entre equipos. 
• Mejor entendimiento de las necesidades del cliente. 
 
 
1.4 Aproximación a la solución 
 
En primer lugar, me gustaría mencionar el trabajo que han realizado otros 
investigadores paraconseguir resolver el mismo problema planteado 
anteriormente: 
Primero de todo, hablaremos de la tesis de Eugenio Parra (Parra, 2016), en donde 
se consigue clasificar un corpus de requisitos mediante el uso de árboles de decisión, 
utilizando las propias reglas del árbol de decisión para crear requisitos de mayor 
calidad. Hablaremos también del artículo publicado en el 2009 (Casamayor, Godoy, 
& Campo, 2009), en donde se consigue clasificar los requerimientos no funcionales 
por medio de aprendizaje automático semi-supervisado. 
Otros enfoques diferentes, pero igualmente válidos los podemos encontrar en (Mat 
Jani & Tariqul Islam, 2012), en donde se propone la utilización de un marco de 
trabajo basado en una metodología para crear requisitos de calidad. Por otro lado 
en el artículo científico (Casamayor et al., 2009) se utiliza el aprendizaje automático 
para analizar y predecir la calidad de requisitos. Algo bastante útil para los roles de 
analista y jefe de proyecto. 
Finalmente, me gustaría mencionar también a (Dargan, Campos-Nanez, Fomin, & 
Wasek, 2014) en donde crean un sistema funcional que no solo es capaz de clasificar 
los requisitos, sino que también establece una relación entre la calidad de los 
requisitos y el rendimiento del proyecto. Demostrando así la importancia que tiene 
la ingeniería de requisitos. 
En segundo lugar, es necesario explicar cómo se ha enfocado el problema. Nuestro 
enfoque consiste en la presentación de un método que tiene dos objetivos 
principales: en primer lugar, identificar los requisitos con mala calidad, ya sea 
porque son ambiguos, deficientes o porque no se adecuan a las necesidades del 
proyecto y, en segundo lugar, se quiere proponer soluciones de cambio para todos 
aquellos requisitos identificados como de mala calidad. Nuestro método sigue los 
siguientes pasos: 
1. Primero, se cuenta con un corpus de requisitos de los cuales se han extraído 
previamente veintiséis métricas mediante el procesamiento del lenguaje 
natural que serán utilizadas para clasificarlos de manera binaria 
dependiendo de su calidad. Este paso puede ser realizado por cualquier tipo 
de clasificador ya sea un árbol de decisión, cualquier otro algoritmo de 
aprendizaje supervisado, no supervisado o incluso una red neuronal. La 
eficacia de cada uno de los clasificadores utilizados será testeada 
dependiendo de la opinión real de los expertos en materia. Estimando así el 
porcentaje de acierto de cada uno de los clasificadores utilizados. 
2. A continuación, se tomarán como datos de entrada, todos aquellos requisitos 
clasificados como de mala calidad. Durante este paso, se implementará un 
algoritmo genético para proporcionar soluciones de cambio. 
3. Para cada una de las soluciones aportadas en paso anterior, se evaluará la 
calidad de la solución propuesta, así como también su coste de cambio. Es 
decir, se pretende hacer una propuesta de cambio para los requisitos que nos 
proporcione un requisito de buena calidad y que al mismo tiempo el coste de 
cambio sea el óptimo para el usuario. 
4. Finalmente, las mejores soluciones encontradas por cada uno de los 
requisitos de mala calidad serán mostradas al usuario final a modo de 
sugerencia, siendo la persona física la que tiene la última palabra 
dependiendo de las circunstancias de cada proyecto. 
Finalmente, es necesario destacar la originalidad del enfoque sugerido. El principal 
punto distintivo de esta tesis con respecto al resto de los trabajos comparables 
consiste en la utilización de algoritmos genéticos para la creación de propuestas de 
cambio y así poder corregir los requisitos identificados como de mala calidad. 
La utilización de algoritmos genéticos nos aporta una serie de ventajas: 
1. Es un método de creación de soluciones que no depende del clasificador 
utilizado (lenguaje supervisado, no supervisado, árbol de decisión, red 
neuronal…), esa era una de las principales barreras hasta el momento. El 
método propuesto sigue siendo igual de eficaz y es capaz de adaptarse de una 
manera más efectiva las necesidades de cada proyecto. 
2. La utilización de algoritmos genéticos nos permite aportarle al usuario un 
gran número de propuestas diferentes. Por lo que si no le gusta la más optima 
que se ha encontrado, siempre puede descartarla y coger otra. 
3. Además, los algoritmos genéticos han sido optimizados para poder encontrar 
soluciones razonablemente eficientes en cuanto a coste de esfuerzo. 
Mediante la utilización de las propias reglas dentro del árbol de decisión 
siempre se consigue llegar a la solución más optima, pero los algoritmos 
genéticos han demostrado proporcionar soluciones igual de óptimas. 
4. Los algoritmos genéticos son probabilísticos por naturaleza, lo cual implica 
desde el punto de vista teórico una mejor adaptabilidad con un conjunto 
completamente diferente de requisitos. 
 
 
1.5 Validez del enfoque 
 
Para garantizar que el enfoque propuesto sea capaz de identificar la calidad de los 
requisitos, así como también proponer soluciones de mejora de la calidad se han 
utilizado un corpus formado por 1035 requisitos extraídos de proyectos reales 
todos ellos clasificados por expertos en INCOSE de acuerdo con su propio criterio. 
De los cuales 485 han sido identificados como de mala calidad. Además del atributo 
clase, veintiséis características han sido generadas como resultado del 
procesamiento del lenguaje natural. 
Dicha muestra de requisitos es lo suficientemente grande y fiable como para poder 
extrapolar los resultados obtenidos a todo tipo de escenarios con un número de 
requisitos similar. Así mismo, debido al tamaño y a la calidad de los datos, también 
es posible medir de manera fiable la exactitud y eficiencia de la solución propuesta. 
 
Capí tulo 2: estado del arte 
 
Este proyecto de investigación consiste en el desarrollo de un método que se puede 
resumir en los siguientes procesos: en primer lugar, se utilizarán diferentes 
algoritmos de inteligencia artificial, para poder clasificar los requisitos dependiendo 
de su calidad. En segundo lugar, se utilizarán algoritmos genéticos para crear 
propuestas de mejora de todos aquellos requisitos clasificados como de mala 
calidad. Finalmente, se evalúa la calidad y el coste de cambio por cada una de estas 
propuestas que serán presentadas al usuario final, para que sea este el que decida la 
que más se adecue a las circunstancias del proyecto. 
Por lo tanto, se ha realizado una búsqueda exhaustiva de diferentes trabajos de 
investigación utilizando como criterios principales de selección, el tema a tratar, el 
nivel de relación con este proyecto de investigación y el año de publicación. (Los 
trabajos más recientes serán tomados más en cuenta). Y el hecho de que sean un 
artículo científico completo. Dichos trabajos relacionados han sido clasificados de la 
siguiente forma: 
• Ingeniería de requisitos: la ingeniería de requisitos nos plantea problemas 
con infinitas soluciones en la que se busca una mayor eficiencia, 
automatización y calidad de requisitos. 
• Algoritmos genéticos: la utilización de algoritmos genéticos tanto en materia 
de requisitos como en otros campos nos permite aprender de ellos para 
conseguir una mejor implementación en el método propuesto. 
• Trabajos muy fuertemente relacionados: finalmente, se recopilarán todos 
aquellos trabajos que dado su planteamiento u objetivos presentan un nivel 
de concordancia mayor, así mismo, se explicará también por qué es original 
el enfoque propuesto. 
 
2.1 Ingeniería de requisitos: 
 
Se entiende por ingeniería de requisitos a aquel proceso en el que se analizan, 
recopilan y verifican las necesidades del cliente de alguna manera para cualquier 
proyecto. 
El objetivo principal de dicha ingeniería consiste en entregar una especificación de 
requisitos tan completo y correcto como sea posible. La ingeniería de requisitos 
pretende, porlo tanto, mejorar la manera en la que comprendemos y definimos los 
sistemas de software, especialmente aquellos sistemas que tengan un cierto nivel de 
complejidad. 
La ingeniería de requisitos nos plantea así una serie de desafíos que pueden ser 
enfocados de muchas maneras diferentes, pero todos ellos tienen el mismo objetivo 
principal: recopilar las necesidades y las limitaciones del proyecto de la manera más 
clara, concreta y concisa posible. 
A continuación, se presentará un resumen de los principales trabajos relacionados 
dentro de la ingeniería de requisitos. Para luego poder ser explicados en detalle. 
 
Aspecto a tratar Forma de abordarlo Referencia 
Mejora de la calidad de los 
requerimientos en materia de 
seguridad. 
Por medio del uso de patrones 
predefinidos. 
(Daramola, Sindre, 
& Stalhane, 2012) 
Priorización de 
requerimientos en sistemas 
informáticos geográficamente 
distribuidos. 
Experimento basado en un 
algoritmo que prioriza los 
requisitos en el desarrollo del 
software incremental. 
(Gupta, Singh 
Chauhan, & Dutta, 
2012) 
Clasificación de la calidad de 
requisitos y su 
implementación en el 
proyecto. 
Creación de un algoritmo que 
de manera cuantitativa 
clasificará los requisitos 
dependiendo de su calidad. 
(Thakurta, n.d.) 
Detección de conflictos en 
grandes conjuntos de 
requisitos. 
Herramienta que utiliza del 
método bayesiano para 
detectar conflictos entre 
requisitos. 
(Sardinha, 
Chitchyan, Weston, 
Greenwood, & 
Rashid, 2013) 
Detección de conflictos y 
existencias en requisitos 
conceptuales. 
Creación de un marco de 
trabajo que en primer lugar 
analizará las inconsistencias 
para luego enfrentarse a los 
conflictos. 
(Ali, Dalpiaz, & 
Giorgini, 2013) 
Detección de terminología 
ambigua en materia de 
requisitos. 
Detección automática de 
ambigüedades en un concepto 
o sobrecarga del mismo. 
(Wang, Manotas 
Gutiérrez, 
Winbladh, & Fang, 
n.d.) 
Verificación de la calidad de 
requisitos. 
Creación de una metodología 
que transforma el lenguaje 
natural en entidades 
analizables. 
(Popescu, Rugaber, 
Medvidovic, & 
Berry, n.d.) 
Reutilización de requisitos 
extrayendo características por 
medio del procesamiento del 
lenguaje. 
Revisión sistemática sobre 15 
estudios diferentes que 
procesan el lenguaje natural y 
extraen características para su 
posterior reutilización. 
(Hasrina Bakar, 
Kasirun, & Salleh, 
2015) 
Priorización de requisitos. 
Utilización de cuestionarios 
con pautas que les permitan 
una mejor valoración. 
(Santos, 
Albuquerque, & 
Pinheiro, 2016) 
La creación de requisitos de 
calidad. 
Implementación de las 
directrices INCOSE en la 
herramienta de evaluación de 
requisitos. 
(Fuentes, Fraga, 
Génova, & Parra, 
2016) 
Solución de conflictos entre 
las diferentes partes 
involucradas. 
Utilización de un algoritmo 
llamado “a priori” que 
priorizará requisitos y se 
adelantará a posibles 
conflictos. 
(Anand & 
Dinakaran, 2017) 
Identificación de los requisitos 
no funcionales. 
Verificación de la validez de 
los requisitos no funcionales 
por medio de algoritmos Java 
automatizados. 
(Matsumoto, 
Shirai, & Ohnishi, 
2017) 
Evaluación de los criterios de 
calidad de requisitos en 
metodologías ágiles. 
Realización de una revisión 
sistemática. Evaluando 
veintiocho criterios diferentes 
de dieciséis estudios. 
(Heck & Zaidman, 
2018) 
Evolución de la calidad de 
requisitos en un proyecto. 
Mejoras implementadas para 
adaptarse a las necesidades 
cambiantes de los proyectos 
sobre su herramienta RQA 
(Requirements Quality 
Analyser) 
(la Vara, Parra, & 
Alonso, 2018) 
 
Tabla 1. Resumen de los trabajos relacionados en materia de ingeniería de requisitos 
ordenados cronológicamente (Fuente propia) 
 
El artículo (Daramola et al., 2012) tiene como principal desafío el hecho de que la 
especificación de requisitos de seguridad sean de calidad. Este es uno de los puntos 
más débiles de la ingeniería de requisitos debido principalmente a dos factores: la 
falta de formación y experiencia de los expertos en seguridad, lo cual crea requisitos 
ambiguos. Y también porque los requisitos de seguridad a menudo son descuidados 
durante la especificación de requisitos. 
Dicho estudio tiene como resultado final una herramienta funcional cuya 
metodología está basada en los siguientes pasos secuenciales. 
1. En primer lugar, se utilizará el análisis de requisitos para seleccionar la 
plantilla predefinida que más se ajuste a cada situación, basado en los 
patrones que han sido identificados en la descripción del problema. 
2. En segundo lugar, se identifican los requisitos incluidos previamente en otros 
proyectos y que podrían ser reutilizados dada su similitud “los llamados 
requisitos repetitivos”. 
Finalmente, el resultado será presentado al usuario a modo de formulario 
obteniendo beneficios tales como: la simplificación del proceso, ahorro de costes o 
el incremento de la calidad de requisitos. 
Por otra parte, en (Gupta et al., 2012) nos proponen otra solución: un algoritmo que 
calcula la prioridad de cada requisito mediante fórmulas matemáticas. Los 
resultados de los experimentos parecen ser bastante favorables y sin duda es un 
buen enfoque, con un coste de implementación tan reducido como eficaz, la 
principal desventaja de este enfoque es su campo de actuación. Sólo es aplicable 
para las metodologías ágiles con desarrollo incremental y sistemas distribuidos. 
Dicho algoritmo seguirá los siguientes pasos secuenciales. Primero, clasificará el 
requisito en diferentes categorías como por ejemplo “satisfacción del cliente” o 
“costes del proyecto” 
A continuación, por cada uno de los requisitos se calculará su prioridad por cada una 
de las personas y por cada una de las partes involucradas. Después se calculará la 
media aritmética de todas las partes involucradas en el proyecto. 
A partir de aquí pueden darse dos casos. El primer caso es que haya discrepancias 
grandes sobre la importancia de un requisito dentro de una misma entidad. 
Entonces se creará una negociación local. El segundo caso es que haya discrepancias 
grandes entre diferentes partes interesadas. En cuyo caso se creará una negociación 
colectiva. 
Un objetivo muy parecido a nuestro proyecto de investigación se tiene en (Thakurta, 
n.d.). El resultado principal en este estudio es la creación de un marco de trabajo que 
actúa en beneficio de ambas partes: la empresa aportadora del servicio y la empresa 
cliente. 
Dicho algoritmo generará un valor medible de manera cuantitativa que indicará si 
dicho requisito deberá ser incluido e implementado en el proyecto o no. 
Este algoritmo también nos aportará datos útiles como, por ejemplo, el alcance de 
dicho requisito para la empresa cliente o si hay grandes discrepancias sobre la 
importancia de un requisito de acuerdo con ambas partes. 
Por otra parte, en (Thakurta, n.d.) proponen una algoritmo formado por seis pasos 
secuenciales que pueden ser resumidos de la siguiente forma: primero identificará 
aquellos requisitos que no sean funcionales, a continuación, creará un escenario con 
la solución completa y lo relacionará con los objetivos de negocio. Para finalmente 
ajustar dicho escenario a cada uno de los objetivos en mayor o menor medida 
dependiendo de su importancia. 
Uno de los sistemas más flexibles y con una buena validación es ofrecido en 
(Sardinha et al., 2013), con una solución que consigue casi un 94% de aciertos 
independientemente del escenario, nos proponen una herramienta con el siguiente 
funcionamiento: 
Para empezar, se analizará el lenguaje natural de cada texto en busca de 
composiciones. Es decir, requerimientos o frases que a su vez contienen más de una 
idea. 
Como segunda instancia se utilizará el algoritmo bayesiano con una serie de 
instancias reales predefinidas para poder clasificar yencontrar conflictos dentro de 
estas especificaciones compuestas. 
El punto más importante de este proyecto de investigación es la demostración de 
que es posible detectar conflictos contextuales de manera automática y no solo eso, 
sino que además han demostrado que se puede conseguir con una exactitud casi del 
cien por cien. 
Un enfoque parecido, pero ligeramente más completo es aportado en (Ali et al., 
2013), en donde se proponen un gran reto. La creación de un marco de trabajo que 
sea capaz de detectar inconsistencias y conflictos dentro de un contexto específico, 
y dicho contexto dependerá del área en la que se ubique el proyecto en cuestión. 
La herramienta realizará a priori un complejo análisis en busca de inconsistencias 
basado en el procesamiento del lenguaje natural, y a continuación realizará 
completo análisis de conflictos. Además de ello, nos proponen también una 
metodología para poder ubicar los objetivos de cada proyecto de manera contextual, 
así como también una serie de reglas de razonamiento que vienen asociadas para la 
identificación de dichos objetivos de manera más eficiente. 
El resultado de dicho marco de trabajo ha demostrado ser efectivo desde diferentes 
perspectivas: usabilidad, habilidad para el entendimiento de los objetivos y la 
escalabilidad de los razonamientos automatizados. 
Es necesario mencionar también (Wang et al., n.d.), con un enfoque ligeramente 
diferente pero persiguiendo los mismos objetivos. Automatización, eficiencia y 
eficacia a la hora de encontrar y corregir los errores en ingeniería de requisitos. 
En esta ocasión se centrarán en franquear las barreras del lenguaje natural para 
encontrar la ambigüedad léxica. Evitando así diferentes interpretaciones por cada 
una de las partes y por lo tanto ayudando a un mejor planteamiento del proyecto en 
cuestión. 
Su principal foco de atención será encontrar principalmente dos tipos de 
ambigüedades: sobrecargas de terminología y sinónimos ambiguos tal y como se 
muestra en la Figura 1: 
 
 
 
Fig 1. Esquema de sobrecarga y sinónimos (Wang et al., n.d.) 
 
Para conseguir dicho propósito nos proponen un sistema automatizado que 
analizará cada concepto por separado y dentro de su propio contexto. Asignándole 
así, un valor mediable de manera cuantitativa que nos permitirá detectar cuando 
un término tiene demasiados sinónimos y cuando una palabra contiene 
demasiados significados. Dando lugar así a diferentes interpretaciones. 
Los cuatro experimentos realizados son capaces de validad un sistema con una 
implementación que resulta simple, efectiva y práctica al mismo tiempo, aplicable 
dentro del campo de la ingeniería de requisitos. 
Otro enfoque diferente para garantizar la creación de requisitos de calidad es 
aportado en (Aceituna, Walia, Do, & Lee, 2014), En dicho estudio nos proponen un 
método automatizado que es capaz de analizar el lenguaje natural de los requisitos 
de un proyecto en busca de inconsistencias. 
Para ello, en primer paso será procesar el lenguaje natural y para dividirlo en lo que 
ellos llaman “Diagrama de transición de estados”. Una vez que el requisito ha sido 
dividido en bloques se buscarán principalmente dos tipos de inconsistencias: la 
primera inconsistencia será si presenta algún tipo de ambigüedad o si puede ser 
interpretado de diferentes formas y la segunda inconsistencia es si dicho requisito 
está incompleto o si tiene algún tipo de indefinición o falta de información. 
Dicho método ha demostrado identificar las ambigüedades y la falta de datos 
necesarios en dos experimentos diferentes realizados por la universidad de Dakota. 
Creando así una buena alternativa mediante una herramienta para garantizar la 
creación de requisitos de calidad, así como también un mejor planteamiento del 
proyecto. 
Para completar el estado del arte, se mencionará el siguiente trabajo de revisión 
sistemática (Hasrina Bakar et al., 2015). En donde se evalúa como está el estado del 
arte en base a trece estudios diferentes, todos ellos con el mismo objetivo: el 
procesamiento del lenguaje natural de los requisitos para así poder extraer ciertas 
características de cada requisito, lo cual nos permitirá poder reutilizarlo en el 
contexto adecuado en el futuro. 
Tras haber analizado en profundidad cada uno de los estudios, los resultados 
mostraron que encontraron diferentes enfoques híbridos en el procesamiento del 
lenguaje natural. Y a su vez dichos enfoques son comunes al proceso general de 
extracción de características. 
Dichos estudios han sido clasificados en dos grupos: automatizados y 
semiautomatizados. Dependiendo de la forma en la que extraigan los datos y 
recuperen la información a partir de ellos. 
En cuanto a la evaluación final de cada uno de los estudios. Los autores nos indican 
que no todos ellos han conseguido validar de manera consistente con métricas 
cuantitativas sus diferentes propuestas. Algo que resulta de vital importancia para 
ganar credibilidad en cualquier estudio científico. 
Un aspecto muy importante y a menudo olvidado en materia de requisitos es su 
priorización. Este es el principal problema que tratan de resolver en (Santos et al., 
2016) . A menudo nos encontramos en un proyecto con un universo de requisitos de 
los cuales no todos tienen la misma importancia para todas las partes involucradas. 
En este enfoque, se propone una solución con un modelo híbrido para la priorización 
de requisitos. La forma de calcular la prioridad será medible de manera cuantitativa 
por un sistema de votos. Para probar su eficacia y la importancia de la priorización 
de requisitos se han utilizado un conjunto de treinta y tres requisitos de casos reales 
que serán priorizados por un total de ochenta expertos en materia. 
Entre los puntos fuertes de este enfoque se puede destacar: su escalabilidad, la fácil 
adaptación al contexto y la facilidad de implementación. 
Un proyecto de investigación bastante vinculado al anterior es (Fuentes et al., 2016), 
en donde se centran en la creación de una herramienta llamada RQA (Requirements 
Quality Analyzer). Dicha herramienta es capaz de evaluar la calidad de cada 
requisito basándose en diferentes parámetros clasificados en dos grupos: 
• No paramétricos: aquí se encuentran parámetros como lista de palabras, 
tiempo verbal o voz activa o pasiva. 
• Paramétricos: en donde se pueden encontrar indicadores semánticos, 
terminológicos o relacionales por exponer algunos ejemplos. 
Finalmente se ha procedido a la implementación de una serie de directrices 
publicadas por la INCOSE para conseguir requisitos de calidad. A continuación, 
dicho sistema será testeado con requisitos reales, mostrando así unos resultados 
bastante prometedores. 
Uno de los puntos fuertes a destacar de este estudio es que es capaz de adaptarse a 
cada contexto. Los requisitos con un nivel de calidad más exigente contendrán un 
mayor número de métricas de calidad, así como también de reglas. adaptándose así 
a las exigencias de cada escenario. 
Un problema que es olvidado a menudo por los estudios de ingeniería de requisitos 
son los conflictos existentes entre las diferentes partes involucradas dentro del 
mismo proyecto. Para poder solucionarlo, el artículo (Anand & Dinakaran, 2017) nos 
propone la creación de un marco de trabajo que por medio de la priorización de 
requisitos conseguirá anticiparse a los futuros problemas y por lo tanto disminuir 
los conflictos existentes durante la fase de la creación del proyecto. 
Dicho estudio está centrado en el uso de metodologías ágiles en las cuales la entrega 
del producto final debe de ser incremental. Por lo que la priorización de requisitos 
juega un papel muy importante. 
Dicha priorización estará basada conceptualmente en cuatro factores: la mano de 
obra, la necesidad del cambio, el enfoque y las limitaciones del proyecto. Asimismo, 
el algoritmo “a priori” que dará vida al marco detrabajo será utilizado mayormente 
en bases de datos a través de las cuales se pueden extraer un conjunto de elementos 
comunes. 
Entre los puntos fuertes que se pueden encontrar en el estudio cabe destacar el 
enfoque en la solución de conflictos entre las diferentes partes involucradas dentro 
de un proyecto, lo cual le aporta bastante originalidad y su compatibilidad con las 
metodologías ágiles, siendo altamente usadas por las empresas informáticas hoy en 
día. 
Uno de los últimos trabajos sobre la ingeniería de requisitos que se revisarán será 
(Matsumoto et al., 2017), en donde se ha creado una metodología basada en un 
algoritmo que a través de unos pasos secuenciales consigue evaluar las 
ambigüedades existentes y la ausencia de información en materia de requisitos. Al 
igual que este proyecto, el producto final está escrito en lenguaje java y su 
funcionamiento interno está basado en los siguientes pasos: en primer lugar, el 
algoritmo evaluará la arquitectura del proyecto. Identificando por lo tanto cada uno 
de los objetos y los atributos que contiene cada entidad. 
A continuación, se identificarán también las operaciones que podrán hacer cada uno 
de los objetos, así como también los roles involucrados en ellas. Finalmente, el 
algoritmo tomará esta estructura como datos de entrada y a partir de aquí será 
capaz de construir requisitos funcionales con una o más sentencias reduciendo al 
máximo las ambigüedades, incoherencias o diferentes interpretaciones que se le 
podría dar a cada uno de los requisitos. 
De entre los puntos fuertes de este estudio, cabe destacar la facilidad de 
implementación y su adaptabilidad a diferentes tipos de escenarios dado que toma 
como punto de entrada la estructura de los datos del proyecto. 
Para finalizar este apartado, se acabará hablando sobre los dos estudios publicados 
más recientemente en el año 2018. En uno de ellos (Heck & Zaidman, 2018), se ha 
realizado una revisión sistemática en la que se describe cómo está el estado del arte 
sobre los diferentes criterios, para así poder evaluar la calidad de un requisito en un 
proyecto. 
En dicha revisión sistemática se ha propuesto como criterio de inclusión a todos 
aquellos artículos que hablen sobre productos software, empleando metodologías 
ágiles, que hablen sobre la calidad del producto y la calidad de los requisitos y que 
asimismo hayan sido publicados después del año 2001. 
Las conclusiones principales que se pueden extraer de dicho estudio son: 
- En primer lugar, que no hay una respuesta única y, por lo tanto, no siempre 
se puede afirmar que un criterio sea mejor que otro. El mejor criterio será 
por lo tanto aquel se mejor se adapte a las necesidades del proyecto en 
cuestión. 
- En segundo lugar, hay que tener en cuenta que las metodologías ágiles 
proponen un desarrollo incremental por lo que los requisitos al principio de 
un proyecto suelen variar bastante, debido a esto, un buen criterio de calidad 
de requisitos debe de ser también flexible y adaptable a las nuevas 
necesidades del proyecto en cada momento. 
Finalmente, se hablará del último artículo publicado en el año 2018 (la Vara et al., 
2018), que consiste además en la continuación de trabajos anteriores relacionados 
con la tesis presentada. (Parra, 2016). En dicha publicación se toma como base la 
herramienta previamente diseñada llamada RQA (Requirements Quality Analyzer). 
Dicha herramienta es capaz de extraer diferentes características a partir de estos 
requisitos y, asimismo, es capaz de evaluar su calidad tanto por separado como 
dependiendo del contexto. Además, ya se ha demostrado como previamente se le 
habían aplicado diferentes reglas INCOSE para validad su eficacia. 
En este caso se abordará un nuevo desafío, y es que en el mundo de las metodologías 
ágiles el producto entregable es incremental por lo que los requisitos, y por lo tanto 
su calidad, irán variando con el paso del tiempo. 
Por lo tanto, realizarán una serie de experimentos con métricas cuantitativas en la 
que examinan la evolución de la calidad de los requisitos. Finalmente, como 
conclusión se propone la utilización del aprendizaje máquina para poder predecir y 
evaluar esta característica. Las métricas de calidad que se ofrecen como resultado 
en este estudio serán además reutilizadas y tomadas como punto de entrada en el 
enfoque propuesto. 
 
2.2 Algoritmos genéticos: 
 
Los algoritmos genéticos están inspirados en la evolución biológica y en su base 
genético molecular. Hoy en día han pasado a convertirse en una de las ramas más 
prometedoras de la inteligencia artificial, incluidos dentro del campo de la 
informática evolutiva. 
Un algoritmo genético consiste en un método adaptativo que puede utilizarse para 
resolver un problema de búsqueda y optimización. Su funcionamiento se basa en el 
proceso genético que tienen los organismos vivos a lo largo de diferentes 
generaciones de cromosomas. 
Una buena definición de lo que es un algoritmo genético nos la proporcionó 
Goldberg en el año 1989: 
 
“los Algoritmos Genéticos son algoritmos de búsqueda basados en la mecánica de 
selección natural y de la genética natural. Combinan la supervivencia del más apto 
entre estructuras de secuencias con un intercambio de información estructurado, 
aunque aleatorizado, para constituir así un algoritmo de búsqueda que tenga algo de 
las genialidades de las búsquedas humanas” (Goldberg, 1989). 
 
A continuación, se expondrá un resumen de los principales trabajos relacionados 
con este proyecto de investigación dentro del campo de los algoritmos genéticos, 
dichos trabajos tienen en común la implementación de algoritmos genéticos para la 
resolución de todo tipo de problemas tales como una mayor eficiencia en la 
planificación o una mejor priorización de requisitos. 
Debido al menor volumen de trabajos en esta sección se ha ampliado ligeramente el 
rango de búsqueda y se han escogido todos aquellos trabajos realizados en los 
últimos doce años, en lugar de diez. El hecho de que se hayan encontrado pocos 
trabajos similares dentro de este campo sirve para demostrar la novedad que aporta 
el proyecto de investigación presentado en donde hay muchos métodos que sirven 
para detectar las soluciones de mala calidad, pero no demasiados son capaces de 
aportar soluciones de mejora. 
 
Aspecto a tratar Forma de abordarlo Referencia 
Mejora de la eficiencia de 
planificación de proyectos 
Modificación de algoritmos 
genéticos para conseguir una 
mayor eficiencia en la 
planificación de proyectos 
(Karova, Petkova, 
& Smarkov, 2008) 
Distribución de actuadores y 
sensores en grandes 
estructuras 
La utilización de algoritmos 
genéticos multi objetivo para 
encontrar la solución más 
eficiente 
(Cha, Agrawal, 
Kim, & Raich, 
2012) 
Priorización de requisitos 
Utilización de un algoritmo 
genético interactivo capaz de 
adaptarse a las nuevas 
necesidades del proyecto por 
medio de metodologías ágiles 
(Tonella, Susi, & 
Palma, 2013) 
Encontrar el resultado óptimo 
en una función matemática 
Utilización de algoritmos 
genéticos en paralelo que 
consigan encontrar el valor 
óptimo. 
(Tsoulos, Tzallas, & 
Tsalikakis, 2016) 
Optimización de 
características latentes en el 
filtraje colaborativo 
Utilización del sistema 
inmunológico artificial 
(Duma & Twala, 
2018) 
Conseguir un buen nivel en 
cuanto abastecimiento de 
suministros energéticos 
Utilización del sistema 
inmunológico artificial 
combinado con programación 
linear para conseguir un 
mayor nivel de eficiencia 
(Wakui, 
Hashiguchi, 
Sawada, & 
Yokoyama, 2019) 
Predecir la demanda de 
bicicletas compartidas en 
diferentes puntos 
Implementación de un sistema 
inmunológico artificial 
combinado con aprendizaje 
máquina 
(Chang, Wu, Xu, 
Zhang, & Lu, 2019) 
Una mayor eficacia y eficiencia 
en materia de ingeniería de 
requisitos aplicado a lacreación de materiales 
laminados 
Realización de un algoritmo 
genético con dos niveles de 
aproximación adaptado a la 
ingeniería de requisitos. 
(Chen, Shui, Li, & 
Huang, 2015) 
 
Tabla 2. Resumen de los trabajos relacionados sobre algoritmos genéticos ordenados 
cronológicamente (Fuente propia) 
 
Se empezará analizando el artículo publicado en Science Direct aplicado a la 
planificación de proyectos (Karova et al., 2008). En el primer artículo analizado nos 
presentan un buen ejemplo de aplicación de algoritmos genéticos en el campo de 
planificación de proyectos. En un escenario en el que cada proyecto tiene ciertas 
exigencias a la hora de cuadrar horarios y ahorrar costes. 
Se asemeja bastante a nuestra propuesta en los objetivos a conseguir y a modo 
funcional ya que es necesario que la solución cumpla ciertos requisitos que serán 
diferentes en cada caso. Por ejemplo, la misma persona no puede trabajar de manera 
simultánea en dos ámbitos. Además de ello, el algoritmo genético tendrá que 
encontrar la solución más eficiente posible descartando todas aquellas que no 
cumplan las necesidades previamente marcadas por el cliente. 
Cabe destacar que el problema planteado en este artículo es bastante más complejo 
que el nuestro ya que hay que tener en cuenta que cada una de las tareas tiene 
diferentes prioridades y que al mismo tiempo cada uno de los grupos de 
trabajadores presentan restricciones a la hora de actuar. Por otra parte, esta 
propuesta nos sirve muy bien como ejemplo para poder aprender de ella en el 
método a la hora de enfocar la eficiencia de costes cumpliendo unos requisitos 
determinados. 
En el segundo artículo científico que se analizará (Cha et al., 2012), se expone un 
problema que aparentemente no tiene nada que ver con nuestro proyecto de 
investigación. En este caso lo que se busca es una distribución apropiada de los 
sensores y actuadores en un gran conjunto de estructuras distribuidas en gran 
escala. 
Una propuesta que utiliza los algoritmos genéticos en un ámbito diferente, y que sin 
embargo se persigue los mismos objetivos, encontrar la solución más eficiente y que 
siga siendo considerada válida. 
En este caso, se trata de un algoritmo genético multi objetivo que tiene en cuenta la 
posición de cada uno de los elementos mediante otro algoritmo cuadrático 
Gaussiano para la colocación de los acelerómetros y actuadores hidráulicos. 
Demostrando por lo tanto una de las múltiples implementaciones que pueden tener 
los algoritmos genéticos en proyectos reales para la sociedad actual, alcanzando un 
mayor nivel de eficiencia y automatización y siempre dándole la prioridad a la 
calidad de la propuesta generada por el algoritmo genético, ya que resulta ser algo 
de vital importancia en este caso. 
Nuestro primer ejemplo sobre la implementación de algoritmos genéticos en 
materia de ingeniería de requisitos lo tenemos en nuestra tercera referencia 
(Tonella et al., 2013), en donde se propone la utilización de un algoritmo genético 
interactivo fácilmente adaptable a las necesidades cambiantes del cliente, lo cual 
resulta muy adecuado para aquellos proyectos desarrollados con metodologías 
ágiles y desarrollo incremental. 
Su funcionamiento básico consiste en analizar las diferentes limitaciones de cada 
uno de los componentes del proyecto, sin olvidar tampoco las relaciones de 
dependencia existentes entre todo el corpus de requisitos. Además de ello, también 
se ha medido y optimizado su eficiencia dándole prioridad al tiempo de respuesta. 
Para la validación de la eficacia de este algoritmo se ha escogido un escenario en un 
caso real en donde se comparan los resultados obtenidos por este algoritmo con el 
estado del arte en este campo, obteniendo así unos resultados que nos muestran una 
buena aproximación sobre la importancia y calidad de los requisitos, teniendo en 
cuenta un margen de error humano bastante tolerable. 
Un gran ejemplo de las múltiples implementaciones que puede tener una algoritmo 
genético se puede encontrar en (Tsoulos et al., 2016). En dicho estudio los autores 
nos plantean un problema en el que se toman como datos de entrada los diferentes 
valores generados por una función matemática, dicho de manera más concreta, el 
sistema recibe como datos de entrada una función multidimensional con un mínimo 
global dentro de una hipérbola rectangular. 
Un planteamiento completamente diferente del nuestro y que sin embargo se 
comporta de la misma forma a nivel funcional. En medio de un universo de 
resultados, nuestro objetivo será encontrar el mínimo valor numérico (al igual que 
en nuestro caso) por lo que nos sirve enormemente para tomarlo como punto de 
referencia y poder aprender de él. 
Una gran diferencia de (Tsoulos et al., 2016) es la utilización de algoritmos genéticos 
paralelos, es decir, que se utilizarán diferentes algoritmos al mismo tiempo para 
poder generar soluciones, dicho algoritmo ha sido optimizado por medio de una 
condición de salida que será revisada de forma periódica. 
Una pequeña variante de los algoritmos genéticos es el sistema inmunológico 
artificial, bastante parecido a nivel funcional, pero que aparentemente se comporta 
de manera más eficiente en algunos problemas que los algoritmos genéticos. A 
continuación, se mencionarán algunos ejemplos. 
En nuestra referencia (Duma & Twala, 2018), nos hablan sobre la utilización de AIS 
(Sistema Inmunológico Artificial). Como parámetros de entrada en este problema 
se tendrá la utilización de una función estocástica gradiente decreciente. Este 
método será utilizado para poder determinar las características latentes utilizadas 
para producir matrices numéricas con números positivos. 
Por lo tanto, la funcionalidad básica que tendrá la implementación de esta técnica 
será en este caso la de factorización de matrices para la optimización de 
características latentes. 
Además de ello también analizarán la eficiencia de la solución propuesta comparada 
con otros sistemas como el de “Nearest Neighbour” y otros algoritmos de tendencia, 
demostrando así que el AIS es capaz de aportar la respuesta más rápida de entre 
todas las soluciones analizadas para poder resolver el problema planteado. 
Para indagar un poco más en cómo el sistema inmunológico artificial es capaz de 
conseguir los mismos objetivos se mostrará otro ejemplo de uso práctico (Wakui et 
al., 2019). 
El problema que se plantea en este artículo es el proceso de abastecimiento 
energético de la manera más eficiente posible. Y a dicho problema se le propone una 
metodología que conlleva dos pasos: la implementación de AIS, seguido de 
programación linear combinada de enteros enfocado sobre todo a resolver 
problemas en una red a gran escala. Haciendo hincapié sobre todo en las relaciones 
jerárquicas existentes entre las diferentes variables y el diseño estructural del 
problema. 
El problema es descompuesto por la programación linear creando una subdivisión 
del problema a gran escala. A partir de aquí el sistema inmunológico artificial tomará 
estos datos de entrada y generará un conjunto de soluciones parciales optimizadas, 
las cuales serán tomadas en cuenta en el sistema final. 
Un estudio publicado recientemente (Chang et al., 2019), el cual contiene un enfoque 
muy distinto a nuestro proyecto de investigación y que sin embargo tiene bastantes 
similitudes a modo funcional. 
En este caso lo que se trata es de optimizar las existencias de bicicletas en los 
diferentes puntos de la ciudad. Como primer paso utilizarán una red de neuronal 
para poder evaluar y predecir hacia dónde va a tender la demanda en cada punto de 
la ciudad en un futuro cercano. 
En un segundo proceso, dado que hay un universo de posibles soluciones, Se 
implementa un sistema inmunológico artificial para encontrar una solución que sea 
capaz de satisfacer la predicción de la demanda y que al mismo tiempo sea la máseficiente posible. Dicho sistema será también capaz de encontrar una solución en un 
período de tiempo que sea lo más corto posible debido a las limitaciones que exige 
el problema planteado. 
Los autores probaron la solución con un conjunto de datos de entrenamiento y 
testeo, a pesar de que la validación de la solución es un tanto ambigua en este caso, 
los resultados del experimento parecen ser bastante positivos. Este sistema de 
funcionamiento nos sirve además como modelo de referencia y como ejemplo de 
aplicación de las tecnologías mencionadas. 
En (Chen et al., 2015). En donde es expone un ejemplo de utilización de algoritmos 
genéticos en la creación de materiales laminados aeroespaciales. Su principal 
objetivo consiste en la optimización de las secuencias correspondientes. Algo que 
ellos mismos consideran indispensable. 
Para conseguir una mayor optimización del problema sin renunciar a los requisitos 
previamente establecidos se ha implementado una mejora en el algoritmo genético 
previamente establecido, utilizando en este caso un método basado en dos niveles 
de aproximación. Dicho método se utilizará para poder calcular las secuencias de 
apilamiento. 
Como conclusión se puede extraer que este estudio cuenta con un enfoque muy 
particular para poder conseguir una mayor eficiencia en el campo de ingeniería de 
requisitos. Una solución que ha probado ser eficaz. Por otra parte, en el estudio 
también se explica que dicha solución es solamente aplicable en este escenario en 
concreto y extrapolable a otros contextos. Igualmente nos permite poder aprender 
de esta solución y de su interesante forma de resolver el problema. 
 
2.3 Trabajos fuertemente relacionados: 
 
En esta sección se recopilarán todos aquellos artículos y documentación de 
investigaciones con un gran nivel de similitud a nuestra propuesta con el objetivo 
de aprender de ellas. De acuerdo con el criterio de selección se ha decidido ser más 
flexible en cuanto al año de publicación, incluyendo todos aquellos publicados 
posteriormente al año 2003. Por otra parte, el contenido ha pasado a ser el principal 
criterio a la hora de escoger los diferentes artículos. 
Se recuerda que nuestro proyecto de investigación abarca una serie de campos. 
- En primer lugar, está ubicado en el campo de ingeniería de requisitos. A dicho 
problema se le ha propuesto un método que se resumirá en dos pasos 
principales: primero de todo, se han utilizado diferentes de algoritmos de 
inteligencia artificial de cualquier tipo (aprendizaje automático, supervisado, 
no supervisado, redes neuronales, etc) para clasificar los requisitos de 
manera binaria dependiendo de su calidad. 
- En segundo lugar, se ha tomado como datos de entrada todos aquellos 
requisitos considerados como de mala calidad, a continuación, se han 
utilizado algoritmos genéticos que nos propongan diferentes soluciones de 
cambio para mejorar la calidad de dichos requisitos. Finalmente, de todas las 
soluciones propuestas se escogerán las más eficientes y eficaces para que 
puedan ser mostradas al usuario final, siendo este el que decide en última 
instancia la que más se puede adecuar a las necesidades del proyecto. 
En base a las tecnologías y al funcionamiento del proyecto de investigación se han 
escogido un total de ocho trabajos, todos ellos están dentro del campo de la 
ingeniería de requisitos. Además, en todos los casos se le ha propuesto un método 
que utilizará o bien diferentes clasificadores tales como redes neuronales o 
aprendizaje automático (al igual que en el primer paso de nuestro método), o bien 
que utilicen algoritmos genéticos para proporcionar la solución más adecuada y 
eficiente (se corresponde con el segundo caso de nuestro método). 
A continuación, se expondrá un resumen de los principales trabajos relacionados 
con este proyecto explicando brevemente su planteamiento y la forma de abordar el 
problema en cada caso. 
 
Aspecto a tratar Forma de abordarlo Referencia 
Determinar los valores 
objetivos en ingeniería de 
requisitos 
Realización de un algoritmo 
genético inexacto capaz de 
generar múltiples soluciones 
que estén cerca de su mayor 
nivel de optimización 
(Bai & Kwong, 2003) 
Identificación de los requisitos 
no funcionales a partir de 
análisis textual 
Utilización de algoritmos de 
inteligencia artificial semi-
supervisado para su 
identificación 
(Casamayor et al., 
2009) 
Testeo de la eficacia del 
corpus de requisitos 
Utilización de algoritmos 
genéticos para mejorar la 
eficacia, la robustez y la 
escalabilidad del sistema 
actual en materia de 
ingeniería de requisitos 
(Garousi, 2010) 
Creación de un marco de 
trabajo para asegurar calidad 
en la especificación de 
requisitos 
Implementación de una 
metodología basada en los 
casos de uso y la 
implementación de una red 
neuronal 
(Mat Jani & Tariqul 
Islam, 2012) 
Predicción del rendimiento de 
los requisitos 
Realización de predicciones 
basadas en modelos de 
atributos de calidad 
(Dargan et al., 2014) 
Clasificar de forma efectiva el 
corpus de requisitos en un 
proyecto. 
Utilización de herramientas de 
aprendizaje automático 
basado en datos de escenarios 
reales 
(Parra, Dimou, 
Llorens, Moreno, & 
Fraga, 2015) 
Optimización en la creación de 
requisitos de calidad. 
Utilización de árboles de 
decisión que identifiquen los 
requisitos considerados como 
de mala calidad y consigan 
mejorar la calidad de los 
mismos 
(Parra, 2016) 
 
Tabla 3. Resumen de los trabajos fuertemente relacionados ordenados 
cronológicamente (Fuente propia) 
 
En la planificación de proyectos se tienen a menudo múltiples incógnitas como 
incrementar o no el ciclo de desarrollo del producto, estimar la calidad del producto 
o reducir costes. Una solución a este problema de una manera considerablemente 
óptima es mostrada en (Bai & Kwong, 2003). 
En dicho estudio hacen uso de la llamada QDF (Quality Funtion Deployment) para 
extraer los conceptos básicos en materia de ingeniería de requisitos. Dicho proceso 
tendrá como resultado una matriz en la que se desmenuzan todos los componentes 
del proyecto y que se debería hacer en cada caso. Uno de los valores principales que 
nos mostrará el uso del QDF consiste en los valores objetivos que se tomarán como 
referencia para saber el nivel de optimización que se ha conseguido en la solución 
final. 
En el segundo paso, los autores utilizan todos estos parámetros como puntos de 
entrada y se implementará un algoritmo genético que funcione exclusivamente con 
operadores de mutación. Tras ejecutarlo después de diversas generaciones nos 
propondrá una serie de soluciones, todas ellas con un gran nivel de optimización. 
De esta manera se consigue encontrar una solución que se adapte a las necesidades 
del cliente y a las necesidades de cada proyecto, que deje a un lado las 
consideraciones subjetivas de cada individuo y al mismo tiempo con un nivel de 
optimización que, sin ser el óptimo, resulta bastante aceptable. 
Uno de los factores más importantes en la ingeniería de requisitos actual consiste 
en identificar los requisitos funcionales, no solo el mero hecho de identificarlos 
correctamente. Es necesario además que sean identificados lo antes posible para así 
ahorrar costes y errores en el proyecto. Precisamente este es el tema que aborda 
(Casamayor et al., 2009). 
Dicho proyecto de investigación tiene como resultado una aplicación que por medio 
de estrategias de categorización de texto supervisado consiguen desarrollar un 
método para categorizar los requisitos a partir de su lenguaje natural. Dichos datos 
serán calculados y dependerán de sus instancias de entrenamiento, teniendo así la 
ventaja de poder adaptarse a diferentes escenarios. 
El objetivo principal de dicho proyecto de investigación consiste en guiar el proceso 
de creación de requisitos, ofreciendo así consejos útiles identificandorequisitos no 
funcionales que suelen aparecer repetidas veces a lo largo de los proyectos 
informativos. Para conseguir dicho objetivo los autores utilizan algoritmos de 
aprendizaje automático semi-supervisado que son capaces de clasificar los 
requisitos en diferentes categorías a la par que identifican ciertas propiedades 
textuales por cada requisito. 
Los resultados muestran una tasa de acierto del setenta por ciento, sin llegar a ser 
un porcentaje muy alto, han conseguido crear una evidencia empírica de que el 
aprendizaje automático semi-supervisado tiene un coste de esfuerzo menor a la par 
que puede ofrecer relativamente buenos resultados en comparación con la 
clasificación humana manual de los requisitos. 
Por otra parte en la tercera referencia fuertemente relacionada (Garousi, 2010) se 
tiene como resultado la creación de una herramienta que consigue medir y predecir 
la utilidad que va a tener un requisito en el futuro, consiguiendo mejorar el sistema 
previamente establecido mediante el uso de algoritmos genéticos. 
En dicho sistema se toma como punto de entrada diagramas propios de UML, y a 
partir de estos datos se utilizará una herramienta que realiza un test de estrés a cada 
uno de los requisitos por medio de algoritmos genéticos. Al mismo tiempo, también 
se efectuará un análisis empírico de los datos obtenidos. 
El objetivo principal de dicho proyecto es por lo tanto la mejora de la eficiencia, una 
mayor eficacia y la planificación de un proyecto en materia de ingeniería de 
requisitos. Así mismo, se utilizarán también la evaluación empírica para medir la 
robustez y la escalabilidad del enfoque propuesto. 
Un punto para destacar en este estudio es su originalidad, siendo el primero que ha 
sido capaz de crear una herramienta que realiza un test de stress a los requisitos por 
medio de algoritmos genéticos, superando así limitaciones existentes hasta el 
momento mayormente relacionadas con la escalabilidad y la robustez. Por otra 
parte, también explican que el sistema todavía conlleva una serie de limitaciones en 
algunos casos de uso, por ejemplo, en cuanto al rendimiento. Se crea así un punto de 
vista interesante con un enfoque diferente en el que se busca el mismo objetivo que 
en este proyecto de investigación, la creación de requisitos de calidad de una manera 
eficiente y automática. 
En nuestra cuarta referencia fuertemente relacionada (Mat Jani & Tariqul Islam, 
2012) con un enfoque muy similar y con un objetivo será en este caso la creación de 
un corpus de requisitos efectivo y de calidad. Para conseguir este objetivo se ha 
creado un marco de trabajo que es capaz de obtener un buen nivel de resultados 
mediante la utilización de redes neuronales, así como también el razonamiento de 
casos que han sido incluidos previamente en el sistema para poder calcular una 
solución más realista. Un resumen de los diferentes procesos secuenciales de este 
trabajo se puede encontrar en la Figura 2. 
 
 
Fig 2. Flujo de trabajo para conseguir calidad de requisitos por medio de 
razonamiento basado en casos y redes neuronales (Mat Jani & Tariqul Islam, 2012) 
 
En primer lugar, dicho método aplicará las técnicas propias de SQA (Software 
Quality Assurance) para asegurarse de que el corpus de requisitos cumple ciertas 
directrices de calidad. 
A continuación, se realizará también un análisis de calidad por cada uno de los 
requisitos. Estableciendo como criterios principales: lo completos que sean, la 
consistencia, la modificabilidad, la ambigüedad y la facilidad de entendimiento. Para 
la evaluación de calidad se utilizará un sistema basado la aplicación de redes 
neuronales y el razonamiento basado en casos. 
Como conclusión se podría decir que este estudio nos avanza un paso más hacia la 
creación de requisitos de calidad cumpliendo además ciertos estándares. Contiene 
un enfoque bastante diferente del resto y crea además un sistema con un buen nivel 
de eficiencia teniendo en cuenta la gran reducción de tiempo que supone en el 
proceso de evaluación de la calidad de requisitos. 
Un buen ejemplo de predicción del rendimiento de los requisitos basados en 
modelos estadísticos es aportado en (Dargan et al., 2014). En dicho artículo 
científico se introduce un modelo estadístico que utiliza los factores propios de la 
calidad de requisitos para conseguir predecir el rendimiento del sistema de manera 
operacional. 
Dicho modelo ha sido creado con la utilización de datos empíricos recolectados 
dentro de diferentes programas del propio gobierno federal. Para realizar dicha 
predicción se incluirán, entre otras cosas, la utilización de una herramienta que 
validará desde el punto lingüístico cada requisito. 
Posteriormente se creará un modelo de clasificación y se aplicará la técnica de la 
cross-validación para validar las predicciones realizadas en un escenario con datos 
reales. 
Finalmente me gustaría comentar un artículo científico (Parra et al., 2015) 
relacionado con la tesis principal de Eugenio Parra de la cual se hablará en detalle 
más adelante. 
En la actualidad, la identificación de la calidad de requisitos resulta de vital 
importancia para así poder replanificar el proyecto, analizando costes y 
estableciendo acuerdos más coherentes y específicos entre el cliente y la empresa 
aportadora del servicio. 
Para poder conseguir dicho objetivo se propone un método basado en los siguientes 
pasos. Primero de todo, se tomará como parámetro de entrada el corpus de 
requisitos al que se le serán extraídos una serie de métricas relacionadas con la 
calidad del lenguaje. Algunos ejemplos de dichos atributos pueden ser: la voz pasiva, 
o el número de caracteres situados entre los signos de puntuación. 
Una vez que se han extraído dichas características, en el estudio se propone un 
método capaz de identificar la calidad de requisitos por medio de la utilización de 
algoritmos de aprendizaje automático. 
Los resultados finales tras la aplicación de este método en un escenario real 
consiguieron obtener un 86.1% de exactitud. 
Sin duda el trabajo que está más relacionado con este proyecto es la tesis (Parra, 
2016). Los resultados de dicha tesis consisten además en el punto de partida de la 
investigación actual. Cabe destacar que las dos tesis buscan los mismos objetivos: la 
creación de requisitos de calidad con un sistema automatizado que favorezca tanto 
la eficacia como la eficiencia en materia de ingeniería de requisitos. Para ello, se ha 
diseñado un método que sigue los siguientes pasos secuenciales: 
 
 
 
Fig 3. Descripción de los procesos del método propuesto(Parra, 2016) 
 
Primero de todo, se generarán clasificadores que evaluarán la calidad de requisitos 
con un porcentaje considerable de aciertos mediante el uso de árboles de decisión. 
Dichos arboles de decisión clasificaran de manera binaria a los requisitos 
dependiendo de su calidad, identificado en el conjunto de datos con los valores cero 
y uno. Dichos resultados han sido comparados y contrastados con las clasificaciones 
realizadas por los expertos en materia en un escenario real. Además de ello, también 
se ha medido la eficacia de los clasificadores por medio del método de cross-
validación. 
En una segunda parte del método se tomarán como parámetro de entrada todos los 
requisitos considerados como de mala calidad y se utilizarán las reglas generadas 
por los propios árboles de decisión que consiguieron clasificar los requisitos para 
proponer soluciones eficientes sobre cómo poder modificar los requisitos que han 
sido considerados como de mala calidad. 
Entre los puntos fuertes de este proyecto de investigación se puede destacar su 
validación, obteniendo resultados contrastables de manera cuantitativa en un 
escenario real. Así como también lo completo del enfoque propuesto, consiguiendo 
no solo identificar los requisitos que son más propensos a ser problemáticos, sinocomo también aportando soluciones automáticas y generando patrones para la 
creación de requisitos de buena calidad. 
 
 
2.3 La originalidad de la propuesta: 
 
Finalmente me gustaría dedicar una sección para explicar la originalidad de la 
propuesta, detallando cuál es la parte diferenciadora con respecto al resto de 
proyectos de investigación y justificando su originalidad, dado que aportar algo 
nuevo al estado del arte actual se considera uno de los pilares fundamentales del 
mundo científico. 
De acuerdo con el método expuesto en el proyecto anterior (Parra, 2016) se 
utilizaban las propias reglas generadas por el árbol de decisión para crear 
propuestas de mejora, lo cual nos permite alcanzar las opciones óptimas de manera 
muy eficiente. Sin embargo, también se encuentra con las siguientes limitaciones: 
• El proyecto se limita a utilizar como clasificador un árbol de decisión, 
mientras que puede haber otro tipo de clasificadores más exactos y eficientes 
que se están descartando. 
• Además, debido a lo anterior, el método es difícilmente extrapolable a 
diferentes escenarios. Por ejemplo ¿Y si se quiere utilizar regresión en lugar 
de clasificación? ¿Y si se quiere utilizar un clasificador diferente a un árbol de 
decisión? 
• A pesar de que se consigue encontrar la solución óptima, el abanico de 
propuestas es relativamente reducido. Por lo que si al usuario no le gusta es 
posible que tenga que escoger otra solución que sea bastante menos 
eficiente. 
Los principales puntos fuertes de nuestro proyecto en cuanto a su originalidad son: 
• La utilización de algoritmos genéticos como propuestas de mejora nos 
permite prescindir del tipo de clasificador que utilicemos. Teniendo por lo 
tanto una mayor flexibilidad se pueden utilizar algoritmos con mejores 
resultados a la par que se pueden adaptar mejor a las necesidades de cada 
proyecto en cuestión. 
• Los algoritmos genéticos nos permiten tener un abanico de propuestas de 
mejora más amplio, consiguiendo además un nivel de exactitud y eficiencia 
aceptables. 
• Este proyecto consiste en el único enfoque hasta la fecha con el siguiente 
método: procesamiento del lenguaje natural para la extracción de 
características, evaluación de la calidad de requisitos por medio de 
clasificadores e implementación de algoritmos genéticos para crear 
propuestas de mejora. Aportando por lo tanto un método original utilizable 
en casos reales. A diferencia de (Parra et al., 2015), en donde se utilizan las 
propias reglas del árbol de decisión para la búsqueda de requisitos de calidad 
con la mayor eficiencia en costes de esfuerzo. 
 
Capítulo 3: hipótesis de trabajo 
 
 
Para validar este proyecto de investigación se han formulado una serie de hipótesis 
clasificadas en dos grupos: hipótesis generales y específicas. 
Hipótesis generales 
• Se puede calcular de manera heurística el coste de esfuerzo para cambiar 
cada atributo en todos los requisitos. 
• Se puede crear un método que permita la clasificación, mejora y optimización 
de los requisitos por medio de clasificadores y algoritmos genéticos. 
Hipótesis específicas: 
• Se pueden utilizar algoritmos de inteligencia artificial de cualquier tipo 
(supervisado, no supervisado o redes neuronales) aplicados a la ingeniería 
de requisitos de tal manera que sean capaces de identificar patrones que les 
permitan clasificar dichos requisitos dependiendo de su calidad con un buen 
nivel de fiabilidad. 
• Se pueden utilizar algoritmos genéticos que nos proporcionen múltiples 
propuestas de cambio para mejorar la calidad de los requisitos de mala 
calidad optimizando así el coste de esfuerzo de cambio. 
 
 
Capítulo 4: planteamiento del 
problema 
 
Ya sea porque no se ha enfocado el proyecto en el alcance adecuado o porque no se 
han entendido correctamente las necesidades o las peticiones del cliente, son 
muchos los proyectos informáticos (el 47% según Project management institute) 
que fracasan cada año al intentar satisfacer las necesidades de sus respectivos 
clientes. 
Como a los clientes no les gusta la solución aportada y piensan que eso no es lo que 
han pedido, se generan diversos problemas tales como: sobrecostes, dado que hay 
que cambiar la solución, imagen de falta de profesionalidad por parte de la empresa 
que aporta del servicio, así como también una falta de satisfacción por parte del 
cliente. Todo ello supone un gran sobrecoste para la empresa y uno de los 
principales problemas en la planificación de un proyecto. 
Además de ello, el impacto de los problemas planteados es directamente 
proporcional al tiempo en el que se han detectado, cuanto más tarde se detecten 
estas incoherencias con el cliente, mayor sobre costes y más difícil será de cambiar 
la solución. Por lo tanto, cuanto antes se sea consciente de ello y antes se aporten 
soluciones, mayor beneficio se obtendrá. 
Para poder solucionar los problemas anteriormente mencionados existe la 
ingeniería de requisitos, de la cual se pueden derivar una serie de ventajas tales 
como: ahorro de costes, mejora de la capacidad de predicción de los cronogramas 
dentro del proyecto y, por lo tanto, una mejora de la planificación. Así como también 
un mejor entendimiento de las necesidades y de las peticiones del cliente y 
finalmente un menor tiempo de desarrollo del proyecto. 
Los beneficios derivados de la utilización de la ingeniería de requisitos son 
innegables, el problema es que su utilización también conlleva un sobre esfuerzo y 
por lo tanto un sobre coste. Para enfrentarse a este problema no es necesario 
únicamente encontrar el enfoque adecuando. Nuestro método ideal consistirá 
también en un sistema eficiente, automatizado y fácilmente adaptable a las 
necesidades de cada proyecto. 
Dentro del campo de la ingeniería de requisitos se ubica este proyecto de 
investigación en donde se persiguen como objetivos principales la identificación de 
la calidad de los requisitos, la generación de propuestas de cambio para poder 
modificar los requisitos identificados con mala calidad y todo ello será realizado de 
la manera más eficiente, eficaz y automatizada posible, evitando generar sobrecoste 
a la par de reducir al máximo el tiempo de espera para calcular los resultados. 
Para poder conseguir estos objetivos se ha desarrollado un método que es capaz de 
identificar y de cambiar los requisitos considerados como de mala calidad de 
acuerdo con una serie de estándares preestablecidos desde el inicio de la 
planificación del proyecto, incrementando así su eficacia. Dicho método seguirá los 
siguientes pasos secuenciales: 
Uno de los prerrequisitos actuales para poder aplicar nuestro método es la de 
obtener un corpus de requisitos de varios proyectos informáticos, preferiblemente 
enfocados a la misma área a tratar, dichos requisitos serán analizados por medio del 
procesamiento del lenguaje natural. Se extraerán diferentes características como, 
por ejemplo: 
• Atributo de clasificador binario, indicando si está en voz activa o pasiva 
• El número de caracteres situados entre signos de puntuación 
• El número de frases que contiene cada requisito. 
Estos tres son ejemplos de las características que se extraerán por cada requisito. 
En concreto se extraerá un total de veintisiete atributos diferentes tomados a partir 
de un corpus de mil treintaicinco requisitos diferentes. Todos los requisitos han sido 
de proyectos reales, que han sido clasificados por expertos de INCOSE dependiendo 
de su propio criterio siendo este uno de los principales puntos fuertes del trabajo. 
Una vez que se tenga procesada la información en nuestro sistema, nuestro método 
funcionara de acuerdo con los siguientes pasos secuenciales: 
• Primer paso: extracción de características por medio del procesamiento del 
lenguaje natural: Primero de todo será necesario una extracción de 
características por medio del procesamiento del

Continuar navegando