2. Conceptos Te´ oricos Relacionados
3.1. Aprendizaje Supervisado
El aprendizaje supervisado es una t´ecnica de Inteligencia Artificial que permite generar una fuente de informaci´on a partir de datos de entrada pre- viamente clasificados [22]. De esta forma, si se tiene un dato no clasificado, se puede estimar una clasificaci´on mediante la fuente de informaci´on gene- rada previamente. A continuaci´on, se presentar´an una serie de trabajos que utilizan aprendizaje supervisado para resolver diferentes problem´aticas.
3.1.1. El Dise˜no de Arquitecturas de Software
En [13] se aborda la problem´atica que tienen ciertas organizaciones con respecto a tener el control interno de las aplicaciones que utilizan, e imple- mentarlas de tal forma que se satisfagan ciertos atributos de calidad. Ellos consideran que la implementaci´on de unaArquitectura Orientada a Servicios (SOA) teniendo en cuenta atributos de calidad (por ejemplo, performance, interoperabilidad, seguridad, entre otros.) requiere que los dise˜nadores explo- ren soluciones alternativas; esto resulta una tarea que consume mucho tiempo y es propensa a errores, incluso para dise˜nadores expertos.
Learning, conocida comoCase Base Reasoning (CBR). Esta t´ecnica permite obtener una soluci´on a un problema, mediante la b´usqueda de problemas si- milares dentro de una base de conocimiento formada por problemas previos y sus respectivas soluciones. La mayor´ıa de los dise˜nadores utilizan experien- cias pasadas para reutilizar soluciones que resuelvan el problema del dise˜no de una arquitectura hacia su implementaci´on; por eso, CBR naturalmente se ajusta en este proceso de dise˜no basado en la utilizaci´on del conocimiento de la organizaci´on [13].
En este enfoque, un caso Ci se define como una 2-upla<Pi, Si>, donde
Pi est´a compuesto por propiedades de un conector arquitect´onico, atributos
de calidad y escenarios de calidad para ese conector. Mientras que Si es la
materializaci´on de ese conector en t´erminos de dise˜nos orientados a objetos.
Figura 3.1: Enfoque basado en CBR
La Figura 3.1 describe el enfoque basado en CBR, en el cual el dise˜nador da como entrada un problema que consiste del modelado y descripci´on de una
SOA en t´erminos de atributos de calidad, escenarios de calidad y conectores arquitect´onicos. Con la descripci´on del problema, se procede a recuperar de la base de casos aquellos casos que hayan sido ´utiles para resolver problemas similares [13]. Una vez que se encuentra la soluci´on m´as adecuada al problema planteado, se puede evaluar si la misma fue correcta, permitiendo agregar el problema resuelto en la base de casos para que pueda ser usado en el futuro.
3.1.2. Identificaci´on y Clasificaci´on de Requerimientos No Fun- cionales
En [11] y [14] se plantea la problem´atica de realizar la captura de requeri- mientos de un sistema. Dicha tarea ocurre en una etapa temprana del dise˜no de un sistema, y no es sencilla de llevar a cabo, principalmente debido a que las partes interesadas en el sistema pueden no tener una visi´on clara de lo que el sistema debe realizar, ni c´omo debe hacerlo. La captura de requerimien- tos funcionales resulta ser m´as evidente durante el proceso de elicitaci´on del sistema; esto no ocurre as´ı para el caso de los requerimientos no funcionales. Para resolver esta problem´atica, existen dos propuestas. La primera utiliza t´ecnicas de aprendizaje semi-supervisado [11], y la segunda de aprendizaje supervisado [14].
Semi-supervisado La soluci´on propuesta por [11] se encuentra en la Fi- gura 3.2, donde se describe el enfoque semi-supervisado para la clasificaci´on de requerimientos no funcionales. En una primera instancia, se cuenta con algunos datos clasificados, que son usados en conjunto con datos no clasifica- dos, para aprender a clasificar texto mediante la utilizaci´on de un algoritmo de aprendizaje semi-supervisado. La estrategia Maximizaci´on de la Expecta- tiva (EM) es utilizada junto con clasificadores bayesianos na¨ıve para cumplir con el objetivo. Un conjunto inicial de requerimientos clasificados puede ser detectado por el equipo especializado en la captura de requerimientos, o bien establecidos mediante una t´ecnica alternativa. Una vez que el clasificador es construido, es usado para clasificar futuros requerimientos no clasifica-
dos. Opcionalmente, los requerimientos clasificados con la mayor confianza, o aquellos que hayan recibido un buen feedback por parte de los analistas, pueden ser utilizados como requerimientos categorizados para repetir el pro- ceso de aprendizaje [11].
Figura 3.2: Acercamiento semi-supervisado para la clasificaci´on de requeri- mientos no funcionales
Supervisado En [14] tambi´en se propone una soluci´on al problema de identificaci´on y clasificaci´on de requerimientos no funcionales. Sin embargo, el mismo utiliza una t´ecnica de Inteligencia Artificial diferente a la utilizada en [11], ya que no se basa en un m´etodo de aprendizaje semi-supervisado, sino que utiliza un esquema de aprendizaje supervisado, como se observa en la Figura 3.3. En la misma se puede observar que se realiza la tarea de clasificaci´on de conjuntos de datos con el objetivo de construir un clasifica- dor a partir de los mismos. En este tipo de aprendizaje se necesita de m´as participaci´on de expertos que realicen la clasificaci´on de requerimientos no funcionales existentes con respecto al enfoque de [11].
Figura 3.3: Acercamiento supervisado para la clasificaci´on de requerimientos no funcionales