TRABAJO FIN DE CARRERA

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TRABAJO FIN DE CARRERA"

Transcripción

1 UNIVERSIDAD POLITÉCNICA DE MADRID FACULTAD DE INFORMÁTICA TRABAJO FIN DE CARRERA ESTABILIDAD EN EMPAREJAMIENTOS AUTOR: JULIO ORTEGA DÍAZ TUTOR: GREGORIO HERNANDEZ PEÑALVER FECHA DE PRESENTACIÓN: 6 de Septiembre de 2017

2

3

4

5

6 ÍNDICE 1 INTRODUCCIÓN Historia Objetivos Alcance TEORÍA Emparejamientos El problema de los Matrimonios Estables El Algoritmo GALE-SHAPLEY Variantes del Problema Listas Incompletas Empates en las Preferencias Compañeros de Habitación DISEÑO DE LA APLICACIÓN Introducción Diseño de Alto Nivel Límites del Sistema Diagrama de Casos de Uso Actores Casos de Uso en Formato Extendido Diseño de Bajo Nivel Diagrama de Clases MANUAL DE USUARIO Partes de la Aplicación Barra de Menús Barra de Herramientas Interfaz de Ejecución Panel Información Operaciones Herramientas Preferencias Emparejamientos Ejecución CONCLUSIONES BIBLIOGRAFÍA Páginas Web

7

8 1 INTRODUCCIÓN Existen numerosas situaciones de la vida real donde podemos encontrar problemas de asignación, el objetivo principal es encontrar emparejamientos entre grupos que verifiquen ciertas propiedades deseables. Esta problemática aparece en el ámbito de las relaciones personales, el mercado laboral o inmobiliario, la asignación de estudiantes a universidades u hospitales, etc. 1.1 Historia A mediados del siglo XX, en Estados Unidos, surgió la necesidad de contar con un servicio centralizado que permitiese organizar la asignación de residentes a los hospitales según sus preferencias, y en 1951 se diseñó el llamado NRMP (National Resident Matching Program). El éxito del NRMP radicaba en encontrar emparejamientos estables, por lo que si un estudiante no quedaba asignado a su hospital favorito era porque el hospital tenía sus vacantes cubiertas con estudiantes a los que prefería. Sin embargo, David Gale y LLoyd Shapley fueron, en 1962, los encargados de plantear y resolver matemáticamente el problema de las asignaciones estables en problemas de tipo bilateral, donde existen dos grupos en los que se puede tanto demandar como ofertar. Gale y Shapley demostraron que siempre existe un emparejamiento estable para cualquier conjunto de listas de preferencias, siempre que la lista de preferencias de cada individuo incluya a todos los individuos del conjunto opuesto. Un emparejamiento entre dos grupos, los proponentes y los propuestos, se dice que es estable de acuerdo con las listas de preferencias de cada individuo, cuando no existe un proponente y un propuesto no emparejados que se prefieren entre sí antes que a su pareja asignada. También demostraron que existe un emparejamiento óptimo para uno de los dos conjuntos, de manera que cada individuo está en su mejor asignación posible, y si 1

9 hubiera otro emparejamiento estable, estaría igual o menos conforme según sus preferencias. Este algoritmo, así como su aplicación al problema de los residentes/hospitales y otras variantes del problema aplicadas en contextos reales (como por ejemplo alumnos y escuelas en la región de Nueva York), les valió a LLoyd Shapley y Alvin Roth el premio Nobel de Economía en el año Objetivos El objetivo principal de este proyecto es poner a disposición del usuario una aplicación software que permita encontrar emparejamientos estables entre grupos de la misma cardinalidad. La aplicación se ha denominado EeE, que son las siglas de Estabilidad en Emparejamientos. El usuario tiene la posibilidad de definir una serie de preferencias entre los integrantes de los dos grupos sobre los que se pretende establecer un emparejamiento; para ello se generan dos matrices de la misma cardinalidad en las que se recogen todas las preferencias individuales. Los algoritmos que se pueden aplicar son el algoritmo de Gale-Shapley sobre listas completas y el algoritmo de Gale-Shapley sobre listas incompletas. La diferencia fundamental entre estos dos algoritmos radica en que el segundo permite listas en las que se omite las preferencias inaceptables, mientras que el primero no tolera la inaceptabilidad y por lo tanto las listas deben incluir a todos los miembros del grupo opuesto. Además, la aplicación permite la generación de matrices de preferencia de forma aleatoria. Esta aplicación es una herramienta orientada a la enseñanza con un carácter marcadamente didáctico. Esta circunstancia es el motivo por el que los algoritmos se pueden ejecutar en distintas modalidades: paso a paso, todos los pasos o solución final. De esta manera se permite enfatizar determinados aspectos de los algoritmos para 2

10 visualizar sus pasos intermedios y facilitar su comprensión, o acceder directamente a la solución final. 1.3 Alcance El alcance del proyecto incluye los siguientes productos: Código fuente de la aplicación con lenguaje de programación Java. Binario de la aplicación en formato Java Archive (.jar) ejecutable en cualquier sistema operativo que soporte la máquina virtual de Java (versión 8 o superior). Aplicación con soporte multi-idioma (Español/Inglés). Documentación del proyecto que incluye conceptos teóricos del problema, diseño de la aplicación y manual de usuario. Página web en HTML desde la que acceder a los contenidos del proyecto. 3

11 4 Estabilidad en Emparejamientos

12 2 TEORÍA 2.1 Emparejamientos En matemática discreta, dado un grafo G = (V, A), un emparejamiento E en G (también conocido como matching) es un conjunto de aristas no adyacentes entre sí o independientes, es decir, sin vértices en común. Existen diferentes tipos de emparejamientos: Un emparejamiento máximo es un emparejamiento que contiene el número máximo posible de aristas. Por lo tanto, no puede estar contenido en otro de cardinal mayor. Un emparejamiento maximal es un emparejamiento que no puede crecer por agregado de una arista. Cumple la propiedad de que al añadir alguna arista que no pertenece al emparejamiento, se deshace el emparejamiento. Un emparejamiento perfecto es un emparejamiento que cubre todos los vértices del grafo, es decir, cada vértice forma parte del emparejamiento. Atendiendo a las definiciones anteriores se puede formular los siguientes teoremas: Puede haber muchos emparejamientos máximos. Los emparejamientos máximos son maximales, pero no todos los emparejamientos maximales son máximos. Cada emparejamiento perfecto es máximo y maximal. 5

13 Figura 2.1: Tipos de emparejamiento Los problemas de emparejamiento guardan una importante relación con los grafos bipartitos. Un grafo G = (V, A) se dice bipartito si el conjunto de vértices V puede separarse en dos conjuntos disjuntos V = X Y de tal manera que las aristas del grafo unen siempre un vértice de X con uno de Y, es decir, no hay aristas entre los vértices de X ni entre los vértices de Y. En este tipo de grafos, un emparejamiento también puede definirse como una función que establece una correspondencia uno a uno entre un subconjunto de X y un subconjunto de Y. Los emparejamientos sobre grafos bipartitos cumplen la propiedad de que un emparejamiento completo también es emparejamiento máximo y sólo puede darse si los dos conjuntos X e Y tienen el mismo número de vértices. Para obtener un emparejamiento máximo bipartito, es necesario definir previamente un par de conceptos: un camino alterno es un camino en el cual sus aristas alternativamente pertenecen y no pertenecen al emparejamiento. un camino incremento es un camino alterno que comienza y termina en un vértice libre. La manera de proceder para obtener un emparejamiento máximo bipartito consiste en ir incrementando paso a paso el cardinal del emparejamiento mediante caminos incremento hasta obtener un emparejamiento máximo. 6

14 Figura 2.1: Emparejamiento máximo bipartito Para abordar los problemas de asignación óptima es necesario definir el concepto de grafo bipartito ponderado, que no es más que un grafo en el que cada arista tiene asociado un valor. Sobre este tipo de grafos, un emparejamiento máximo bipartito ponderado se define como un emparejamiento perfecto donde la suma de los valores de sus arcos tiene un valor máximo. Si el grafo no es completamente bipartito, los arcos ausentes son introducidos con valor cero. El problema del emparejamiento máximo bipartito ponderado se puede resolver aplicando el algoritmo Húngaro. 2.2 El problema de los Matrimonios Estables El problema de los matrimonios estables es el problema base de los problemas de asignación. Se parte de dos conjuntos de mujeres y hombres, con el mismo cardinal y cada uno con su propia lista de preferencias, y se pretende encontrar la mejor manera de emparejarlos para que todos queden satisfechos. Este escenario general, puede utilizarse como modelo para gran variedad de problemas con interpretación práctica. En términos generales, un problema de asignación busca establecer un emparejamiento, es decir, una correspondencia entre agentes pertenecientes a diferentes conjuntos. En el problema de los matrimonios estables se busca encontrar un emparejamiento entre individuos de dos conjuntos disjuntos que cumpla con la propiedad de estabilidad. Se dice que un emparejamiento es estable si no existe ningún par de agentes que hubieran preferido estar juntos, antes que con su pareja actual. Si existiera dicho par, el mismo es denominado par bloqueante. 7

15 Para plantear el problema clásico de los matrimonios estables, se necesitan los siguientes elementos: Dos conjuntos finitos, disjuntos entre sí y de la misma cardinalidad. M = {m1,.., mn} y H = {h1,.., hn} (card(m) = card(h) = n) denotan el conjunto de hombres y mujeres respectivamente. Cada persona tiene una lista de preferencias estrictamente ordenada (comenzando con la persona de sexo opuesto sobre la que muestra más interés) en la que incluye a todos los integrantes del conjunto opuesto. Es interesante destacar que las listas de preferencias de mujeres y hombres, se pueden denotar por matrices n * n, por lo tanto, existen dos matrices de preferencias (una para las mujeres y otra para los hombres). Bajo estas condiciones, una vez establecidos los conjuntos y las listas de preferencias, se puede obtener emparejamientos o matrimonios estables basados en los siguientes conceptos: Un emparejamiento E, es una correspondencia entre mujeres y hombres que verifica las siguientes condiciones: o E es biyectiva o h H, E(h) M o m M, E(m) H o E(h) = m E(m) = h El par (h, m) con h H y m M, es bloqueante del emparejamiento E si se verifican las condiciones siguientes: o E(h) m o E(m) h o h prefiere a m antes que a E(h) o m prefiere a h antes que a E(m) Un emparejamiento E es estable si no existe en él un par bloqueante. 8

16 Adicionalmente se pueden definir los siguientes conceptos sobre emparejamientos estables: Un emparejamiento E es perfecto si verifica las dos condiciones siguientes: o h H, E(h) M o m M, E(m) H Un emparejamiento E es óptimo para el conjunto A si cumple las dos condiciones siguientes: o E es estable o a A, a prefiere a E(a) antes que a E (a), E emparejamiento estable Un emparejamiento E es pésimo para el conjunto A si cumple las dos condiciones siguientes: o E es estable o a A, a prefiere a E (a) antes que a E(a), E emparejamiento estable Diremos que (h, w) es una pareja válida si existe E emparejamiento estable tal que E(h) = m A continuación, se plantea un ejemplo del problema de matrimonios estables, con una instancia de tamaño n=4 y los conjuntos H={h0,h1,h2,h3} (hombres) y M={m0,m1,m2,m3} (mujeres), donde cada miembro tiene una lista de preferencias con respecto al conjunto opuesto. h0 m0 m1 m2 m3 m0 h0 h2 h3 h1 h1 m2 m1 m3 m0 m1 h0 h1 h2 h3 h2 m2 m1 m3 m0 m2 h1 h2 h0 h3 h3 m1 m2 m3 m0 m3 h3 h0 h2 h1 9

17 En esta instancia, el emparejamiento E1={(h0, m0),(h1, m2),(h2, m1),(h3, m3)} es estable. Para verificar la estabilidad se debe comprobar que todos los posibles pares no bloquean el emparejamiento, aunque más eficientemente basta con comprobar sólo los posibles pares bloqueantes; que en este caso son: (h2, m2), (h3, m1) y (h3, m2). Observando las listas de preferencias de m1 y de m2 puede apreciarse que ambas prefieren a sus parejas asignadas antes que a las parejas de los pares bloqueantes. Se ve fácilmente que la mujer m2 prefiere al hombre que le fue asignado en el emparejamiento, antes que al hombre h2 y al h3, y que la mujer m1 prefiera a su pareja actual antes que al hombre h3. Por lo que no hay pares bloqueantes para E1. En cambio el emparejamiento E2={(h0,m1),(h1,m2),(h2,m0),(h3,m3)} no es estable ya que el par (h0,m0) bloquea el emparejamiento, pues el hombre h0 prefiere estar con la mujer m0 antes que con su pareja actual m1, y m0 prefiere estar con el hombre h0 antes que con su pareja actual h El Algoritmo GALE-SHAPLEY En 1962 Gale y Shapley probaron que, para cualquier instancia del problema de matrimonios estables con listas de preferencias completas y estrictas, existe por lo menos un emparejamiento que cumple con la propiedad de estabilidad. Estos autores probaron este resultado a través de un algoritmo que siempre encuentra un emparejamiento para cualquier instancia dada. Por otro lado, demuestran que el algoritmo siempre le otorga a cada hombre (mujer, si los roles se invierten) la mejor pareja según su lista de preferencias, con respecto a las asignaciones que le hubieran tocado en cualquier otro emparejamiento estable. Hay que tener en cuenta que el algoritmo puede adoptar dos versiones. Una versión orientada a hombres en la que son los hombres quienes comienzan las proposiciones y 10

18 la contraria, una versión orientada a mujeres que, por lo general obtiene distintos resultados. En este caso, se va a trabajar con la versión orientada a hombres. El algoritmo de Gale-Shapley se puede describir como una secuencia de propuestas de los hombres hacia las mujeres siguiendo las siguientes etapas: Primera etapa: Cada hombre le propone un compromiso a su mujer preferida. Segunda etapa: Cada mujer que haya recibido al menos una propuesta, rechaza a todos los hombres salvo al más preferido de todos los que la pretendieron. Al elegido lo mantiene, pero puede cambiar de opinión ya que en las siguientes etapas puede obtener una propuesta mejor. Los hombres que no han sido rechazados en esta etapa quedan comprometidos con la mujer que los aceptó. Tercera etapa: los hombres que han sido rechazados en una etapa previa le proponen un compromiso a la próxima mujer en su lista de preferencias (mujer que no le haya rechazado). Las mujeres vuelven a realizar el mismo procedimiento de elección descrito en la segunda etapa. Se realizará este procedimiento hasta llegar a lo descrito en la última etapa. Última etapa: el algoritmo para cuando ningún hombre es rechazado y cada hombre queda comprometido con alguna mujer. El algoritmo debe parar en alguna etapa porque solo hay un número finito de hombres y mujeres y ningún hombre hace propuestas a ninguna mujer más de una vez. A medida que se va avanzando en el algoritmo, los hombres que van siendo rechazados son cada vez menos favorecidos, mientras que cada mujer que va recibiendo mayor cantidad de propuestas, termina mejor favorecida. Por lo tanto, el emparejamiento obtenido es óptimo para el conjunto que hace las propuestas, y es el peor para el conjunto que las recibe. En este caso, el emparejamiento obtenido es óptimo-masculino. Si invertimos los roles en el algoritmo, de forma tal que la mujer realice las propuestas, el emparejamiento resultante será óptimo-femenino. 11

19 A continuación, se explica de forma practica el funcionamiento del algoritmo. Sean los conjuntos H={h1,h2,h3, h4} y M={m1,m2,m3,m4} con las siguientes preferencias: h1 m1 m2 m3 m4 m1 h3 h2 h1 h4 h2 m1 m2 m3 m4 m2 h4 h1 h3 h2 h3 m1 m2 m3 m4 m3 h4 h3 h2 h1 h4 m3 m4 m2 m1 m4 h1 h2 h3 h4 Primera etapa. Los hombres proponen compromiso a sus mujeres favoritas, de manera que h1, h2 y h3 proponen compromiso a m1 y h4 a m3. h1 m1 h2 m1 h3 m1 h4 m3 Segunda etapa. Ahora, las mujeres seleccionan su mejor propuesta, por lo tanto m1 selecciona a h3 y m3 a h4. La asignación provisional queda de la siguiente manera. h1 m1 h2 m1 h3 m1 h4 m3 Tercera etapa. Los hombres h1 y h2 son los rechazados en la anterior etapa, por tanto van a proponer un compromiso a su segunda opción, que para ambos es la mujer m2. 12

20 h1 m1 m2 h2 m1 m2 h3 m1 m1 h4 m3 m3 Segunda etapa'. Nuevamente las mujeres con más de una propuesta seleccionan al hombre con mayor preferencia. Por tanto, m2 rechaza a h1 y se queda con h2, dejando la asignación provisional de la siguiente manera. h1 m1 m2 h2 m1 m2 h3 m1 m1 h4 m3 m3 Tercera etapa'. El único hombre rechazado es h2, por tanto, propone matrimonio a su tercera opción, la mujer m3. h1 m1 m2 m2 h2 m1 m2 m3 h3 m1 m1 m1 h4 m3 m3 m3 Segunda etapa''. La mujer m3 rechaza a h2 dado que ya está emparejada con su hombre preferido, dejando la asignación provisional de la siguiente manera. 13

21 h1 m1 m2 m2 h2 m1 m2 m3 h3 m1 m1 m1 h4 m3 m3 m3 Tercera etapa''. El hombre h2 propone matrimonio a su siguiente y última opción, la mujer m4. h1 m1 m2 m2 m2 h2 m1 m2 m3 m4 h3 m1 m1 m1 m1 h4 m3 m3 m3 m3 Última etapa. La mujer m4 acepta la proposición de h2 dado, por lo tanto, esta es la última etapa del algoritmo y obtenemos la siguiente asignación estable para este ejemplo. h1 m2 h2 m4 h3 m1 h4 m3 El algoritmo de Gale-Shapley cumple las siguientes propiedades: Termina en un número finito de pasos. Si tenemos n proponentes y n propuestos, el algoritmo terminaría como máximo en n2 pasos, debido a que cada proponente realiza a lo sumo n proposiciones diferentes. 14

22 Genera un emparejamiento perfecto. Genera un emparejamiento estable. No rechaza ninguna pareja válida. Proporciona un emparejamiento óptimo para los proponentes y pésimo para los propuestos. El emparejamiento obtenido es independiente del orden de las proposiciones. El emparejamiento obtenido no permite que más de un proponente quede emparejado con su última opción. 2.4 Variantes del Problema Como se ha mencionado anteriormente, el problema de los matrimonios estables es el problema base de los problemas de asignación, pero existe una serie de trabajos que plantean variantes al problema original. En esta sección citaremos los más conocidos. En el capítulo anterior se contempla el problema original formulado por Gale y Shapley con grupos de la misma cardinalidad y listas de preferencias estrictas y completas, de tal forma que cada individuo de cada grupo está en la lista de preferencias de todos los individuos del otro grupo y además estas preferencias no tienen indiferencias. A continuación, presentamos las siguientes variantes del problema: Listas incompletas: 2 grupos de la misma cardinalidad con listas de preferencias estrictas pero incompletas. Empates en las preferencias: 2 grupos de la misma cardinalidad con listas de preferencias no estrictas. Compañeros de habitación: 1 único grupo de cardinalidad par. 15

23 2.4.1 Listas Incompletas En esta variante, se estudia el problema cuando las listas de preferencia no son completas, es decir, cada individuo puede tener inaceptables en el otro grupo a los que omite en su lista de preferencias; aunque las preferencias de los aceptables siguen siendo estrictas. Cuando los participantes de ambos conjuntos no están obligados a incluir en sus listas de preferencias a todos los miembros del otro conjunto, aparece un tipo de listas conocido con el nombre de listas incompletas. En este caso, dado una mujer m y un hombre h, si la mujer m no incluye al hombre h en su lista, quiere decir que m prefiere quedarse soltera antes que emparejada con h. En este caso particular, es necesario redefinir los siguientes conceptos: El par (h, m) con h H y m M, es bloqueante del emparejamiento E si se verifican alguna de las dos condiciones siguientes: o E(h) = m y h es inaceptable para m ó m es inaceptable para h. o E(h) m y m prefiere a h antes que a E(m) y h prefiere a m antes que a E(h). Dados los conjuntos de proponentes y propuestos H y M respectivamente, y una relación de preferencias con listas incompletas, no siempre existe un emparejamiento perfecto. Con estas condiciones en las listas de preferencias y con las nuevas definiciones siempre es posible encontrar un emparejamiento estable. Basta con realizar las siguientes modificaciones resaltadas en cursiva en la segunda y última etapa del algoritmo original de Gale-Shapley: Segunda etapa: Cada mujer que haya recibido al menos una propuesta, rechaza a los hombres que son inaceptables para ella o en el caso de tener más de un candidato aceptable, rechaza a todos salvo al hombre más preferido de todos los que la pretendieron. Al elegido lo mantiene, pero puede cambiar de opinión ya 16

24 que en las siguientes etapas puede obtener una propuesta mejor. Los hombres que no han sido rechazados en esta etapa quedan comprometidos con la mujer que los aceptó. Última etapa: el algoritmo para cuando ningún hombre es rechazado. En esta etapa cada hombre está comprometido con alguna mujer o ha sido rechazado por todas las mujeres aceptables de su lista de preferencias y queda soltero. El algoritmo debe parar en alguna etapa porque solo hay un número finito de hombres y mujeres y ningún hombre hace propuestas a ninguna mujer más de una vez. En este caso el emparejamiento obtenido podrá dejar tanto a hombres como a mujeres solteros, dependiendo de la lista de preferencias que establezcan. Si un individuo queda sin pareja en un matrimonio estable dentro de una instancia con listas incompletas, estará solo en cualquier otro matrimonio estable que posea esa instancia. A continuación, se explica de forma practica el funcionamiento del algoritmo. Sean los conjuntos H={h1,h2,h3, h4} y M={m1,m2,m3,m4} con las siguientes preferencias: h1 m2 m3 m1 h1 h2 h2 m1 m2 m2 h1 h4 h3 h3 m4 m1 m3 h2 h4 h4 m2 m4 m4 h1 h3 Primera etapa. Los hombres proponen compromiso a sus mujeres favoritas, de manera que h1 y h4 proponen compromiso a m2, h2 a m1 y h3 a m4. 17

25 h1 m2 h2 m1 h3 m4 h4 m2 Segunda etapa. Ahora, las mujeres seleccionan su mejor propuesta, por lo tanto, m1 selecciona a h2, m2 a h1 y m4 a h3. La asignación provisional queda de la siguiente manera. h1 m2 h2 m1 h3 m4 h4 m2 Tercera etapa. El hombre h4 es el rechazado en la anterior etapa, por tanto, van a proponer un compromiso a su segunda opción, que es la mujer m2. h1 m2 m2 h2 m1 m1 h3 m4 m4 h4 m2 m4 Segunda etapa'. En este caso m4 rechaza a h4 porque no aparece en su lista de preferencias, se trata de una propuesta inaceptable para m4. Por lo tanto, la asignación provisional queda de la siguiente manera. 18

26 h1 m2 m2 h2 m1 m1 h3 m4 m4 h4 m2 m4 Tercera etapa'. El hombre h4 es el rechazado en la anterior etapa y no tiene más opciones en su lista de preferencias, por lo tanto queda soltero. h1 m2 m2 m2 h2 m1 m1 m1 h3 m4 m4 m4 h4 m2 m4 Última etapa. Finaliza el algoritmo puesto que todos los hombres quedan comprometidos con alguna mujer o han queda solteros. Por lo tanto, obtenemos la siguiente asignación estable para este ejemplo. h1 m2 h2 m1 h3 m4 h Empates en las Preferencias En esta variante, se estudia el problema cuando las listas de preferencia son completas, pero no son estrictas, es decir, algún individuo puede tener indiferencias entre varias alternativas, de modo que su lista de preferencias puede incluir empates. 19

27 En este caso, se pueden definir nuevos tipos de emparejamientos estables: Un emparejamiento E es débilmente estable si no existe h H y m M tal que: o E(h) m o h prefiere a m antes que a E(h) y m prefiere a h antes que a E(m) Es decir, es débilmente estable si no existe un par (h, m) no unido, en el que ambos se prefieren estrictamente antes que a sus parejas actuales. Un emparejamiento E es fuertemente estable si no existe h H y m M tal que: o E(h) m o Y se da una de las siguientes condiciones: h tiene indiferencia o prefiere a m antes que a E(h), y m prefiere a h antes que a E(m) h prefiere a m antes que a E(h), y m tiene indiferencia o prefiere a h antes que a E(m) Es decir, es fuertemente estable si no existe un par (h, m) no unido, en el que uno de los dos prefiere estrictamente al otro antes que a su pareja actual, y el otro es al menos indiferente. Un emparejamiento E es súper-estable si no existe h H y m M tal que: o E(h) m o h tiene indiferencia o prefiere a m antes que a E(h), y m tiene indiferencia o prefiere a h antes que a E(m) Es decir, es súper-estable si no existe un par (h, m) no unido, que prefiere estarlo o a ambos les resulta indiferente. Se puede ver claramente las siguientes implicaciones: Si E es súper-estable entonces E es fuertemente estable. Si E es fuertemente estable entonces E es débilmente estable. En consecuencia, si nos encontramos ante un emparejamiento débilmente estable se puede aplicar el algoritmo de Gale-Shapley para obtener vínculos estables, pero no hay 20

28 garantía de su existencia con emparejamientos fuertemente estable y por lo tanto tampoco con emparejamientos súper-estables Compañeros de Habitación En el problema de los matrimonios estables se pretende establecer una relación biyectiva entre dos conjuntos, mientras que en el problema de los compañeros de habitación, existe un único conjunto C={c1,..., cn} que se debe dividir en parejas disjuntas. El problema de los compañeros de habitación surge para resolver la asignación de pares de estudiantes en cuartos de una universidad, donde cada estudiante tiene una lista de preferencias estrictamente ordenada de los compañeros restantes. Se trata de una generalización del problema de los matrimonios estables, en el cual una instancia consiste en un conjunto de n personas de cardinalidad par, cada una incluyendo en su lista de preferencias a las n-1 personas restantes en orden estricto. Un emparejamiento entre los miembros de este conjunto es una división del mismo en pares disjuntos. Estos problemas son catalogados también bajo el concepto de uno a uno, dado que toda persona siempre termina en pareja con una única persona. Al igual que para el problema de los matrimonios estables, se dice que un emparejamiento es estable si no existe ninguna pareja bloqueante. Sean ci y cj dos personas del conjunto C, un emparejamiento E se dice inestable si: ci y cj no son pareja en E. ci prefiere a cj antes que a E(ci) y cj prefiere a ci antes que a E(cj). Es decir, ci y cj preferirían ser pareja, en lugar de sus respectivas parejas obtenidas en E. A diferencia del problema de los matrimonios estables, este problema puede no tener solución. Se dice que un problema es resoluble si admite un emparejamiento estable y, en caso contrario, se dice que es irresoluble. 21

29 Robert Irving mostró que es posible determinar si este tipo de problema tiene solución y propuso en 1985 un algoritmo eficiente estructurado en dos etapas para encontrar un emparejamiento estable en el caso de que sea resoluble o responder negativamente cuando es irresoluble: Primera etapa. Consiste en una secuencia de proposiciones de acuerdo a las siguientes reglas: o Si x recibe una propuesta de y, entonces: Lo rechaza si ya tiene una propuesta mejor, es decir, si tiene una propuesta vigente de alguien mejor ubicado en su lista. Lo conserva si es mejor que su propuesta vigente, rechazando la anterior, o si no tenía propuesta. o Un individuo propone siguiendo el orden de su lista de preferencias, deteniéndose cuando su propuesta es aceptada, y continuando si es rechazado en el futuro. Esta etapa finaliza en cualquiera de las siguientes situaciones: o Una o más personas fueron rechazadas por todas las demás. En este caso el problema es irresoluble. o Todas las personas tienen una proposición. En este caso se generan listas reducidas de preferencias teniendo en cuenta que las personas con menor prioridad que la propuesta vigente no pueden ser pareja en un emparejamiento estable. Segunda etapa. Trata los casos en los que existen listas reducidas con más de un elemento y se continúa su reducción mediante las siguientes reglas: o Buscar la primera persona X con más de un elemento en su lista reducida. o Buscar la segunda persona Y de la lista reducida de X. o Buscar la última persona de la lista reducida de Y. o Repetir los dos pasos anteriores hasta que la última persona sea X nuevamente. En ese momento descartar de las listas reducidas todas las propuestas obtenidas. 22

30 Esta etapa finaliza en cualquiera de las siguientes situaciones: o Una o más personas se quedan sin proposiciones. En este caso el problema es irresoluble. o Todas las personas tienen una única proposición que es la solución al problema. A continuación, se plantea un ejemplo en el que tenemos un único conjunto {A, B, C, D, E, F} y una única matriz de preferencias donde cada persona incluye al resto de posibles compañeros ordenados de tal manera que se pone en primer lugar a la persona que más le gustaría tener por compañero: A B D F C E B D E F A C C D E F A B D F C A E B E F C D B A F A B D C E Primera etapa: Se van realizando proposiciones y aceptando o rechazando conforme a las reglas establecidas en el algoritmo. X X X Propuesta realizada Propuesta aceptada Propuesta rechazada 23

31 A B D F C E B D E F A C C D E F A B D F C A E B E F C D B A F A B D C E Primera etapa: Se generan las listas reducidas descartando las propuestas que son peores que las actuales. A B D F C E B D E F A C C D E F A B D F C A E B E F C D B A F A B D C E Segunda etapa: Se tratan las listas con más de un elemento. A D E A F C B Segunda etapa: Se descartan las proposiciones. 24

32 A B D F C E B D E F A C C D E F A B D F C A E B E F C D B A F A B D C E Segunda etapa: Se continúa tratando las listas con más de un elemento. B F B Segunda etapa: Se descartan las proposiciones y se obtiene una solución estable. A B D F C E B D E F A C C D E F A B D F C A E B E F C D B A F A B D C E Para terminar, se plantea un ejemplo irresoluble en el que tenemos el conjunto {A, B, C, D} y la siguiente matriz de preferencias. 25

33 A B C D B C A D C A B D D A B C En la primera etapa se confirma que el problema es irresoluble al quedar la persona D sin elementos en su lista de preferencias. A B C D B C A D C A B D D A B C En esta instancia ninguno de los pares (A, D), (B, D) y (C, D) podrá pertenecer a un emparejamiento estable pues siempre existiría un par bloqueante. Esto es debido a que D está en la última posición en las preferencias de sus compañeros y el resto de personas se eligen entre ellos de manera combinada. 26

34 3 DISEÑO DE LA APLICACIÓN 3.1 Introducción Para la representación y documentación del análisis y modelado del sistema se ha utilizado el estándar de notación UML (Unified Modeling Language). UML es el lenguaje de modelado de sistemas software más conocido y utilizado en la actualidad. Cuenta con el respaldo del OMG (Object Management Group) puesto que es un complemento perfecto para la orientación a objetos. Se trata de un lenguaje basado en una serie de notaciones gráficas para visualizar, especificar, construir y documentar todos los elementos que forman un sistema software. Ofrece un estándar para describir y especificar un modelo del sistema mediante varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas. Para el desarrollo de la aplicación se ha utilizado el lenguaje de programación Java debido a las ventajas que supone ser un lenguaje multiplataforma orientado a objetos, de manera que permite la ejecución del software construido en cualquier plataforma que soporte la máquina virtual de Java y posibilita la reutilización y extensión de código. Por otro lado, dispone de un amplio conjunto de APIs (Interfaces de Programación de Aplicaciones) que facilitan el uso de varias estructuras de datos, el desarrollo de la interfaz gráfica a través de Swing, la internacionalización de la aplicación, etc. 3.2 Diseño de Alto Nivel En este apartado se pretende explicar el diseño que se ha empleado en el desarrollo de la aplicación mediante una visión general del proceso realizado, sin entrar en un análisis muy exhaustivo. 27

35 Se abordan únicamente aquellos estándares que se consideran suficientes para una correcta y sencilla comprensión de la aplicación, sin estar sujeto a las rigurosas normas de nomenclatura que precisan los documentos de Ingeniería del Software. Límites del sistema. Diagrama de casos de uso. Descripción de los actores. Casos de uso en formato extendido Límites del Sistema La herramienta permite encontrar un emparejamiento estable entre dos grupos de agentes que establecen preferencias entre sí. Inicialmente la aplicación crea dos matrices de preferencias de la misma cardinalidad en el panel central y permite que los proponentes de cada grupo añadan o eliminen propuestos a su fila siguiendo un orden estricto de preferencias. Alternativamente, se permite borrar todas las preferencias de las matrices o terminar de completarlas siguiendo una elección aleatoria. Cuando se definen correctamente todas las preferencias, la aplicación permite obtener emparejamientos estables y perfectos aplicando el algoritmo de Listas Completas; en el caso de que los proponentes consideren inaceptables a determinados propuestos, circunstancia que se representa mediante huecos sin rellenar en sus listas de preferencias, la aplicación permite obtener los emparejamientos estables que sean posibles aplicando el algoritmo de Listas Incompletas. El acceso tanto a las opciones de selección de algoritmos y referencias, como a la edición de preferencias, se puede realizar indistintamente desde un panel lateral de trabajo o desde el menú superior. 28

36 La obtención de parejas estables se puede visualizar de manera totalmente interactiva en una nueva matriz del panel central, avanzando o retrocediendo en cada paso del algoritmo, mostrando todos los pasos a la vez o presentando únicamente la solución final. Todas estas opciones de ejecución están presentes en el panel de trabajo lateral. Adicionalmente, la herramienta presenta una barra de estado inferior con información de interés para facilitar la comprensión de los diferentes interfaces; y se trata de una aplicación multi idioma, que se encuentra disponible en español e inglés Diagrama de Casos de Uso Un caso de uso es un mecanismo para capturar y describir de forma sencilla la secuencia de interacciones llevadas a cabo entre un actor y el sistema para realizar una tarea específica. Mediante esta técnica se puede expresar cualquier unidad funcional coherente basada en un conjunto de acciones y reacciones, de manera que se consigue limitar el alcance del sistema y su relación con el entorno empleando un lenguaje natural accesible para cualquier usuario. El sistema queda reducido a una caja negra en el que únicamente interesa las funciones que son visibles desde el exterior y no cómo se realizan. El listado de casos de uso del proyecto es el siguiente: Cambiar Idioma Consultar Manual Consultar Información Crear Emparejamiento Cerrar Emparejamiento Crear Preferencia Borrar Preferencia 29

37 Limpiar Preferencias Completar Preferencias Seleccionar Algoritmo Seleccionar Referencia Reiniciar Algoritmo Ejecutar Anterior Ejecutar Siguiente Finalizar Algoritmo Mostrar Solución Un diagrama de casos de uso es la representación visual de todos los casos de uso del sistema y su relación con los actores. El sistema en sí está representado como un rectángulo que contiene en su interior casos de uso comunicados mediante líneas con los actores con los que interactúan. Por lo tanto, los diagramas de casos de uso están formados por tres elementos principales: Actores: Simboliza los usuarios del sistema (humanos, dispositivos externos, temporizadores que envían eventos,..) que interactúan con el sistema mediante casos de uso. Un actor se caracteriza por la forma de relacionarse con el sistema, por lo que un mismo usuario puede ejercer de varios actores, y un actor puede representar a varios usuarios. Los actores se representan mediante figuras de hombre de palo con un nombre en la parte inferior. 30

38 Casos de uso: Simboliza el comportamiento del sistema en relación con los usuarios. De esta forma, un caso de uso define la secuencia de interacciones entre uno o más usuarios y el sistema. Los casos de uso se representan mediante una elipse, con un nombre en su interior. Relaciones: Simboliza el flujo de información intercambiada entre actores y casos de uso, o entre diferentes casos de uso. Se emplean para que un caso de uso obtenga la información necesaria para llevar a cabo alguna acción o para que el proceso proporcione algún resultado, tanto unidireccional como bidireccionalmente. Las relaciones se representan mediante flechas que unen los casos de uso y los actores entre los que existe un flujo de información. El Diagrama de Casos de Uso del proyecto es el siguiente: 31

39 32 Estabilidad en Emparejamientos

40 3.2.3 Actores Únicamente existe un actor que interactúa con el sistema. Este actor principal es el usuario que tiene acceso a todas las operaciones de la aplicación para definir las preferencias de los distintos grupos de proponentes y visualizar la ejecución de los algoritmos hasta encontrar una solución al problema de estabilidad en emparejamientos Casos de Uso en Formato Extendido A continuación, se describen los casos de uso con un nivel de detalle extendido superior al formato básico del alto nivel, de manera que se especifican las interacciones habituales entre los actores de la aplicación. El formato empleado consta de los siguientes campos: Caso de Uso: Nombre del caso de uso. Objetivo: Qué es lo que debe hacer el sistema. Actor Principal: Quién utiliza el sistema para alcanzar un objetivo. En este caso el Usuario. Precondiciones: Qué debe cumplirse antes de comenzar un escenario. Activa: Acción que inicia el caso de uso. Escenario principal de éxito: Describe el camino de éxito típico que satisface los intereses del personal involucrado. Garantías de éxito: Qué debe cumplirse cuando el caso de uso se acaba con éxito. Garantías de fracaso: Qué debe cumplirse cuando el caso de uso se abandona. Extensiones: Indican todos los otros escenarios o bifurcaciones tanto de éxito como de fracaso. 33

41 Cambiar Idioma Caso de Uso Objetivo Actor Principal Precondiciones Activa Cambiar Idioma Cambiar todo el texto de la aplicación a uno de los lenguajes soportados: español o inglés Usuario Ninguna El usuario accede al menú Idioma y selecciona el idioma deseado (español o inglés) 1. El usuario solicita un cambio de idioma Escenario principal de éxito Garantías de éxito Garantías de fracaso Extensiones 2. El sistema modifica todo el texto del aplicativo al idioma seleccionado y lo emplea a partir de ese momento para todos los mensajes que aparezcan Cambia todo el texto de la aplicación al lenguaje seleccionado El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso Ninguna Consultar Manual Caso de Uso Objetivo Actor Principal Consultar Manual Mostrar el manual de usuario para que pueda ser consultado Usuario 34

42 Precondiciones Activa Escenario principal de éxito Garantías de éxito Garantías de fracaso Extensiones Ninguna El usuario accede al menú Ayuda y selecciona la opción Ayuda 1. El usuario solicita la obtención de Ayuda 2. El sistema abre el manual de usuario en formato pdf Se abre un documento pdf con el contenido del manual de usuario El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso Ninguna Consultar Información Caso de Uso Objetivo Actor Principal Precondiciones Activa Escenario principal de éxito Garantías de éxito Garantías de fracaso Consultar Información Mostar información relacionada con la aplicación Usuario Ninguna El usuario accede al menú Ayuda y selecciona la opción "Acerca de" 1. El usuario solicita información de la aplicación 2. El sistema abre una ventana emergente en la que se muestra información de la aplicación Se abre una ventana emergente con información de la aplicación El sistema se mantiene en el mismo estado coherente que se 35

43 encontraba antes de iniciar el caso de uso Extensiones 3. El usuario pulsa el aspa para cerrar la ventana 4. El sistema cierra la ventana emergente de información Crear Emparejamiento Caso de Uso Objetivo Actor Principal Precondiciones Activa Crear Emparejamiento Iniciar o reiniciar un emparejamiento mediante la creación de dos matrices de preferencias Usuario Ninguna El usuario accede al menú Archivo y selecciona la opción Nuevo o pulsa el botón Nuevo de la barra de herramientas 1. El usuario solicita la creación de un nuevo emparejamiento 2. El sistema abre la ventana emergente "Nuevo Emparejamiento" Escenario principal de éxito 3. El sistema solicita un número de parejas 4. El usuario introduce un número entre 1 y El sistema inicializa un nuevo emparejamiento con dos matrices de preferencias inicialmente vacías y sin presencia de matrices de emparejamientos Garantías de éxito Se crea en el panel central dos matrices de la misma dimensión inicialmente vacías para que el usuario pueda comenzar a introducir preferencias 36

44 Garantías de fracaso El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso 4a. El usuario introduce un valor no numérico 1. El sistema muestra un mensaje de advertencia indicando esta circunstancia 2. El usuario pulsa "enter", el aspa o el botón Ok de la ventana de advertencia 3. Se vuelve al paso 4 del escenario de éxito 4b. El usuario introduce un valor fuera del rango 1-99 Extensiones 1. El sistema muestra un mensaje de advertencia indicando esta circunstancia 2. El usuario pulsa "enter", el aspa o el botón Ok de la ventana de advertencia 3. Se vuelve al paso 4 del escenario de éxito 4c. El usuario pulsa el aspa para cerrar la ventana 1. El sistema cierra la ventana emergente "Nuevo Emparejamiento" Cerrar Emparejamiento Caso de Uso Objetivo Actor Principal Precondiciones Cerrar Emparejamiento Cerrar el emparejamiento actual eliminando las matrices de preferencias o emparejamientos que pudiesen existir Usuario Ninguna 37

45 Activa Escenario principal de éxito Garantías de éxito Garantías de fracaso Extensiones El usuario accede al menú Archivo y selecciona la opción Cerrar o pulsa el botón Cerrar de la barra de herramientas 1. El usuario solicita el cierre del emparejamiento actual 2. El sistema elimina las matrices de preferencias y emparejamientos que pudiesen existir El panel central se muestra vacío sin matrices de preferencias o emparejamientos El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso Ninguna Crear Preferencia Caso de Uso Objetivo Actor Principal Precondiciones Activa Crear Preferencia Definir una propuesta de un proponente Usuario Existen las matrices de preferencias No hay ningún algoritmo en ejecución El usuario pulsa el botón izquierdo del ratón en cualquiera de las celdas de las matrices de preferencia 1. El usuario solicita la creación de una nueva preferencia Escenario principal de éxito 2. El sistema abre la ventana emergente "Valor Celda" 3. El sistema solicita un subíndice de pareja entre una serie de posibilidades 38

46 4. El usuario introduce un número entre las posibilidades propuestas 5. El sistema marca la celda editada con la propuesta elegida por el usuario Garantías de éxito Garantías de fracaso Se inserta la propuesta definida en la celda editada de la matriz de preferencias El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso 4a. El usuario introduce un valor no numérico 1. El sistema muestra un mensaje de advertencia indicando esta circunstancia 2. El usuario pulsa "enter", el aspa o el botón Ok de la ventana de advertencia 3. Se vuelve al paso 4 del escenario de éxito Extensiones 4b. El usuario introduce un valor diferente a las posibilidades propuestas 1. El sistema muestra un mensaje de advertencia indicando las posibilidades aceptables 2. El usuario pulsa "enter", el aspa o el botón Ok de la ventana de advertencia 3. Se vuelve al paso 4 del escenario de éxito 4c. El usuario pulsa el aspa o el botón Cancelar para cerrar la ventana 1. El sistema cierra la ventana emergente "Valor Celda" 39

47 Borrar Preferencia Caso de Uso Objetivo Actor Principal Precondiciones Activa Escenario principal de éxito Garantías de éxito Garantías de fracaso Extensiones Borrar Preferencia Eliminar la propuesta de un proponente Usuario Existen las matrices de preferencias No hay ningún algoritmo en ejecución El usuario pulsa el botón derecho del ratón en cualquiera de las celdas de las matrices de preferencia 1. El usuario solicita la eliminación de una determinada preferencia 2. El sistema deja la celda editada sin propuesta definida Se elimina de la matriz de preferencias el valor que hubiese presente en la celda editada El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso Ninguna Limpiar Preferencias Caso de Uso Objetivo Limpiar Preferencias Eliminar todas las propuestas de todos los proponentes Actor Principal Existen las matrices de preferencias 40

48 No hay ningún algoritmo en ejecución Precondiciones Limpiar Preferencias Eliminar todas las propuestas de todos los proponentes Garantías de éxito Garantías de fracaso Extensiones Ninguna El usuario accede al menú Preferencias y selecciona la opción Borrar o pulsa el botón Borrar de la sección Preferencias del Interfaz de ejecución 1. El usuario solicita la eliminación de todas las preferencias 2. El sistema deja todas las celdas sin propuestas definidas Todas las celdas de las matrices de preferencias quedan sin valor definido Se elimina de las matrices de preferencias los valores de todas las celdas Ninguna Completar Preferencias Caso de Uso Objetivo Actor Principal Completar Preferencias Definir aleatoriamente las propuestas incompletas de todos los proponentes Usuario Existen las matrices de preferencias Precondiciones Se ha seleccionado un algoritmo concreto No hay ningún algoritmo en ejecución Activa El usuario accede al menú Preferencias y selecciona la opción 41

49 Completar o pulsa el botón Completar de la sección Preferencias del Interfaz de ejecución Escenario principal de éxito Garantías de éxito Garantías de fracaso Extensiones 1. El usuario solicita la creación aleatoria de todas las preferencias sin rellenar 2. El sistema marca las celdas sin rellenar con valores aleatorios Se insertan valores aleatorios elegidos entre las opciones disponibles, en las celdas incompletas de las matrices de preferencias El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso Ninguna Seleccionar Algoritmo Caso de Uso Objetivo Actor Principal Precondiciones Activa Escenario principal de éxito Seleccionar Algoritmo Definir el algoritmo de ejecución Usuario Existen las matrices de preferencias No hay ningún algoritmo en ejecución El usuario selecciona un algoritmo desde el menú Algoritmos o desde la sección Algoritmos del Interfaz de ejecución 1. El usuario selecciona un algoritmo de ejecución 2. El sistema establece el algoritmo seleccionado como motor de ejecución 42

50 Garantías de éxito Garantías de fracaso Extensiones Queda definido el algoritmo que se va a emplear para buscar emparejamientos estables El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso Ninguna Seleccionar Referencia Caso de Uso Objetivo Actor Principal Precondiciones Activa Escenario principal de éxito Garantías de éxito Garantías de fracaso Seleccionar Referencia Definir un punto de vista que sirva como referencia para buscar emparejamientos estables Usuario Existen las matrices de preferencias No hay ningún algoritmo en ejecución El usuario selecciona una referencia desde el menú Referencias o desde la sección Referencias del Interfaz de ejecución 1. El usuario selecciona un punto de vista 2. El sistema establece el punto de vista seleccionado como referencia para buscar emparejamientos Se muestra la matriz de emparejamientos con las referencias de A al seleccionar Punto de vista A s, la matriz de emparejamientos con las referencias de B al seleccionar Punto de vista B s, o las dos matrices al seleccionar Ambos El sistema se mantiene en el mismo estado coherente que se 43

51 encontraba antes de iniciar el caso de uso Extensiones Ninguna Reiniciar Algoritmo Caso de Uso Objetivo Actor Principal Reiniciar Algoritmo Devolver el algoritmo y su representación en las matrices de preferencias existentes al estado inicial de ejecución Usuario Existen las matrices de preferencias Precondiciones Se ha seleccionado un algoritmo concreto Se ha seleccionado un punto de vista concreto No hay ningún algoritmo en ejecución Activa Escenario principal de éxito Garantías de éxito Garantías de fracaso Extensiones El usuario pulsa el botón Inicio de la sección Emparejamientos del Interfaz de ejecución 1. El usuario solicita reiniciar el algoritmo 2. El sistema devuelve el algoritmo al estado inicial de ejecución Se eliminan todas las columnas que pudiesen existir en las matrices de emparejamientos El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso Ninguna 44

52 Ejecutar Anterior Caso de Uso Objetivo Actor Principal Ejecutar Anterior Devolver el algoritmo y su representación en las matrices de preferencias existentes al paso de ejecución inmediatamente anterior al actual Usuario Existen las matrices de preferencias Precondiciones Se ha seleccionado un algoritmo concreto Se ha seleccionado un punto de vista concreto No hay ningún algoritmo en ejecución Activa Escenario principal de éxito Garantías de éxito Garantías de fracaso Extensiones El usuario pulsa el botón Atrás de la sección Emparejamientos del Interfaz de ejecución 1. El usuario solicita retroceder un paso del algoritmo 2. El sistema devuelve el algoritmo al paso inmediatamente anterior al actual Se elimina la última columna de posibilidades o se deshace el último análisis de estabilidad en las matrices de emparejamientos El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso Ninguna 45

53 Ejecutar Siguiente Caso de Uso Objetivo Actor Principal Ejecutar Siguiente Avanzar el algoritmo y su representación en las matrices de preferencias existentes al paso de ejecución inmediatamente posterior al actual Usuario Existen las matrices de preferencias Precondiciones Se ha seleccionado un algoritmo concreto Se ha seleccionado un punto de vista concreto No hay ningún algoritmo en ejecución Activa El usuario pulsa el botón Avanzar de la sección Emparejamientos del Interfaz de ejecución 1. El usuario solicita avanzar un paso del algoritmo Escenario principal de éxito 2. El sistema comprueba que las matrices de preferencias están rellenas conforme a las necesidades del algoritmo seleccionado 3. El sistema muestra el paso del algoritmo inmediatamente posterior al actual Garantías de éxito Garantías de fracaso Extensiones Se añade una nueva columna de posibilidades o se muestra un nuevo análisis de estabilidad en las matrices de emparejamientos El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso 2a. El sistema detecta que alguna de las matrices de preferencias no está rellena conforme a las necesidades del algoritmo 46

54 seleccionado 3. El sistema muestra un mensaje de advertencia indicando esta circunstancia 4. El usuario pulsa "enter", el aspa o el botón Ok de la ventana de advertencia Finalizar Algoritmo Caso de Uso Objetivo Actor Principal Finalizar Algoritmo Avanzar el algoritmo y su representación en las matrices de preferencias existentes al último paso de ejecución Usuario Existen las matrices de preferencias Precondiciones Se ha seleccionado un algoritmo concreto Se ha seleccionado un punto de vista concreto No hay ningún algoritmo en ejecución Activa El usuario pulsa el botón Final de la sección Emparejamientos del Interfaz de ejecución 1. El usuario solicita finalizar el algoritmo Escenario principal de éxito 2. El sistema comprueba que las matrices de preferencias están rellenas conforme a las necesidades del algoritmo seleccionado 3. El sistema muestra todos los pasos del algoritmo hasta su finalización Garantías de éxito Se muestran todas las columnas de posibilidades y todos los 47

55 análisis de estabilidad en las matrices de emparejamientos existentes Garantías de fracaso El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso 2a. El sistema detecta que alguna de las matrices de preferencias no está rellena conforme a las necesidades del algoritmo seleccionado Extensiones 3. El sistema muestra un mensaje de advertencia indicando esta circunstancia 4. El usuario pulsa "enter", el aspa o el botón Ok de la ventana de advertencia Mostrar Solución Caso de Uso Objetivo Actor Principal Mostrar Solución Mostrar únicamente la lista de emparejamientos obtenida por el algoritmo para cada una de las matrices existentes Usuario Existen las matrices de preferencias Precondiciones Se ha seleccionado un algoritmo concreto Se ha seleccionado un punto de vista concreto No hay ningún algoritmo en ejecución Activa Escenario principal El usuario pulsa el botón Lista Final de la sección Emparejamientos del Interfaz de ejecución 1. El usuario solicita la lista de emparejamientos del algoritmo 48

56 de éxito 2. El sistema comprueba que las matrices de preferencias están rellenas conforme a las necesidades del algoritmo seleccionado 3. El sistema muestra el último paso del algoritmo con la lista de emparejamientos estables Garantías de éxito Garantías de fracaso Se muestra únicamente una columna con los emparejamientos estables obtenidos por el algoritmo en las matrices de emparejamientos existentes El sistema se mantiene en el mismo estado coherente que se encontraba antes de iniciar el caso de uso 2a. El sistema detecta que alguna de las matrices de preferencias no está rellena conforme a las necesidades del algoritmo seleccionado Extensiones 3. El sistema muestra un mensaje de advertencia indicando esta circunstancia 4. El usuario pulsa "enter", el aspa o el botón Ok de la ventana de advertencia 49

57 3.3 Diseño de Bajo Nivel Para realizar el diseño de bajo nivel se ha empleado diagramas de clases con notación UML, que permiten mostrar una visión global de los diferentes componentes del sistema y su relación entre ellos Diagrama de Clases Un diagrama de clases es un tipo de diagrama estático empleado durante la fase de análisis y diseño de los sistemas informáticos para representar gráficamente la estructura y especificaciones de las entidades software de una aplicación, mediante las clases que componen el sistema. En la programación orientada a objetos, una clase es la construcción utilizada como modelo o plantilla a partir de la cual se pueden crear objetos. La clase almacena un estado en sus atributos y encapsula un comportamiento a través de secciones de código reutilizables llamados métodos. Una clase se representa gráficamente mediante una caja formada por tres partes: nombre, atributos y métodos. Sin embargo, para dar una visión general y facilitar la comprensión de las relaciones existentes entre las clases, el siguiente diagrama muestra las principales clases en formato simplificado mediante una caja en la que únicamente aparece el nombre de la clase sin atributos ni métodos. 50

58 A continuación, se muestran las principales clases del sistema por separado para poder verlas con más detalle mediante su representación gráfica completa (atributos y métodos) y se describe brevemente la funcionalidad presente en sus métodos más relevantes. 51

59 Clase EeE La clase EeE es la clase principal, contiene el método main que se encarga de definir el entorno de trabajo de la aplicación y crear la ventana principal en la que se van incorporando los demás componentes del sistema sobre los que interactúa el usuario de la aplicación. Para la creación de esta clase se emplea una extensión de la clase JFrame de Java Clase Acerca La clase Acerca es la encargada de suministrar información sobre la aplicación. Es, por tanto, la clase responsable de la implementación del caso de uso Consultar Información. Para la creación de esta clase se emplea una extensión de la clase JFrame de Java. 52

60 Clase Nuevo La clase Nuevo es la encargada de inicializar las matrices de preferencias mediante la elección de una dimensión o cardinalidad. Es, por tanto, la clase responsable de la implementación del caso de uso Crear Emparejamiento. Para la creación de esta clase se emplea una extensión de la clase JFrame de Java. 53

61 Clase MenuBarEstabilidad La clase MenuBarEstabilidad es la encargada de crear la barra de menús y dar acceso a gran parte de las funcionalidades definidas en los casos de uso: Crear Emparejamiento, Cerrar Emparejamiento, Seleccionar Algoritmo, Completar Preferencias, Limpiar Preferencias, Seleccionar Referencia, Cambiar Idioma, Consultar Manual y Consultar Información. Todas estas funcionalidades se agrupan en los menús Archivo, Algoritmos, Preferencias, Referencias, Idioma, y Ayuda. La clase dispone de métodos para habilitar o deshabilitar estas funcionalidades en base al estado en que se encuentre el sistema. Para la creación de esta clase se emplea una extensión de la clase JMenuBar de Java. 54

62 55 Estabilidad en Emparejamientos

63 Clase ToolBarEstabilidad La clase ToolBarEstabilidad es la encargada de crear la barra de herramientas y dar acceso de manera más rápida y cómoda a las funcionalidades definidas en los casos de uso: Crear Emparejamiento, Cerrar Emparejamiento y Consultar Manual. Estas funcionalidades se mantienen activas en cualquier momento del flujo de ejecución de la aplicación. Para la creación de esta clase se emplea una extensión de la clase JToolBarde Java Clase SideBarEstabilidad La clase SideBarEstabilidad es la encargada de crear el interfaz lateral de ejecución y dar acceso a gran parte de las funcionalidades definidas en los casos de uso: Seleccionar Algoritmo, Completar Preferencias, Limpiar Preferencias, Seleccionar Referencia, Reiniciar Algoritmo, Ejecutar Anterior, Ejecutar Siguiente, Finalizar Algoritmo y Mostrar Solución. Todas estas funcionalidades se agrupan en las secciones Algoritmos, Preferencias, Referencias y Ejecución. La clase dispone de métodos para habilitar o deshabilitar estas funcionalidades en base al estado en que se encuentre el sistema. Para la creación de esta clase se emplea una extensión de la clase Box de Java. 56

64 57 Estabilidad en Emparejamientos

65 Clase CentralEstabilidad La clase CentralEstabilidad es la encargada de presentar las matrices de preferencias y emparejamientos mediante colaboración con los objetos de las clases Generador y Emparejador, respectivamente. Este diálogo permite llevar a cabo las funcionalidades definidas en los casos de uso Crear Emparejamiento, Cerrar Emparejamiento, Limpiar Preferencias, Completar Preferencias, Reiniciar Algoritmo, Ejecutar Anterior, Ejecutar Siguiente, Finalizar Algoritmo y Mostrar Solución. Estas funcionalidades son accesibles desde los diferentes menús de la clase MenuBarEstabilidad y las diferentes secciones de la clase SideBarEstabilidad. Para la creación de esta clase se emplea una extensión de la clase JPanel de Java. 58

66 59 Estabilidad en Emparejamientos

67 Clase Generador La clase Generador es la encargada de gestionar las matrices de preferencias. Almacena información sobre las propuestas seleccionadas y las propuestas disponibles para cada fila de la matriz, y en función del algoritmo seleccionado permite completar de forma aleatoria las preferencias que faltan por rellenar Clase Emparejador La clase Emparejador es la encargada de gestionar las matrices de emparejamientos e implementar la lógica de los algoritmos. Las funciones definidas en esta clase son, por tanto, la generación de propuestas de emparejamiento en la que se toma como referencia el punto de vista seleccionado, el análisis de estabilidad de estas propuestas, y en función del resultado obtenido, el descarte en base a las preferencias y la generación de nuevas propuestas, o la finalización del algoritmo en la que se ofrece una solución estable para el problema de emparejamientos planteado. 60

68 Clase Celda La clase Celda es la encargada de insertar la propuesta seleccionada por el usuario en la celda de la matriz de preferencias editada. Es, por tanto, la clase responsable de la implementación del caso de uso Crear Preferencia. Para la creación de esta clase se emplea una extensión de la clase JFrame de Java. 61

69 Clase Matriz La clase Matriz es la plantilla que sirve de estructura para almacenar el contenido de las matrices del aplicativo, ya sean de preferencias o de emparejamientos. Se trata de una lista de listas multidimensional, es decir sin una dimensión predefinida, y una serie de operaciones con la lógica necesaria para manipular y consultar su contenido. 62

70 Clase Cuadricula La clase Cuadricula es la encargada de pintar las matrices de preferencias y emparejamientos en el panel central de la aplicación. Dibuja la cuadrícula externa de las matrices y el contenido de las celdas en el caso de que corresponda. El contenido de las celdas es un valor numérico que puede estar tachado si se trata de un descarte realizado durante la fase de análisis de estabilidad. 63

71 64 Estabilidad en Emparejamientos

72 4 MANUAL DE USUARIO EeE (Estabilidad en Emparejamientos) es una aplicación JAVA distribuida en un paquete JAR que puede, por tanto, ser ejecutada en cualquier sistema que cuente con una Máquina Virtual de Java (JVM). La distribución de los elementos en la aplicación es similar a la empleada en cualquier otra herramienta gráfica. 4.1 Partes de la Aplicación La ventana principal de la aplicación EeE está compuesta por los siguientes elementos: Barra de Menús Barra de Herramientas Interfaz de Ejecución Panel Información Barra de Menús A continuación, se describen los menús de la aplicación indicando la utilidad de cada una de las opciones, sin entrar a explicarlas en profundidad. No todas las opciones del menú están habilitadas en cualquier momento. En función del estado en que se encuentren las matrices de preferencias y la matriz de emparejamientos, se activan o desactivan las distintas opciones. Figura 4.1: Barra de Menús 65

73 Inicio En el menú Inicio aparecen las clásicas opciones Nuevo, Cerrar y Salir. Figura 4.2: Menú Inicio Nuevo: Solicita el número de parejas que desean establecerse, y a continuación crea una matriz de preferencias para los integrantes del grupo A y otra matriz de preferencias para los integrantes del grupo B. Ejecuta la operación Iniciar Emparejamiento. Cerrar: Deja la aplicación en su estado inicial, eliminando, en caso de que existan, las matrices de preferencias y la matriz de emparejamientos. Ejecuta la operación Cerrar Emparejamiento. Salir: Permite cerrar y salir de la aplicación Algoritmos En el menú Algoritmos aparecen los distintos tipos de algoritmos que pueden ejecutarse. Figura 4.3: Menú Algoritmos Este menú contiene las siguientes opciones: Listas Completas: Ejecuta el algoritmo sobre las matrices de preferencias A y B completas, es decir, todos los integrantes de los grupos A y B tienen que 66

74 establecer su orden de preferencia incluyendo a todos los integrantes del otro grupo sin excepción. Listas Incompletas: Ejecuta el algoritmo sobre las matrices de preferencias A y B incompletas, es decir, los integrantes de los grupos A y B pueden establecer sus preferencias sin incluir a todos los integrantes del otro grupo Preferencias En el menú Preferencias aparecen funcionalidades de ayuda para vaciar y rellenar las matrices de preferencias. Figura 4.4: Menú Preferencias Este menú contiene las siguientes opciones: Borrar: Elimina todas las elecciones definidas en las matrices de preferencias A y B. Ejecuta la operación Borrar Preferencias. Completar: Completa de manera aleatoria las listas de preferencias de todos los integrantes de los grupos A y B en función del tipo de algoritmo seleccionado, manteniendo las posibles elecciones definidas manualmente. Ejecuta la operación Completar Preferencias Referencias En el menú Referencias aparecen las distintas prioridades o puntos de vista que pueden establecerse para la ejecución del algoritmo. 67

75 Figura 4.5: Menú Referencias Este menú contiene las siguientes opciones: Punto de Vista A s: Ejecuta el algoritmo tomando como referencia inicial las preferencias del grupo A. Punto de Vista B s: Ejecuta el algoritmo tomando como referencia inicial las preferencias del grupo B. Ambos: Ejecuta el algoritmo tomando como referencia inicial las preferencias del grupo A y posteriormente las preferencias del grupo B Idioma En el menú Idioma se puede definir el idioma de la aplicación. El idioma por defecto de la aplicación es español. Figura 4.6: Menú Idioma Este menú contiene las siguientes opciones: Español: Todo el contenido de la aplicación se muestra en español. Inglés: Todo el contenido de la aplicación se muestra en inglés. 68

76 Ayuda En el menú Ayuda se ofrece acceso al manual de usuario e información acerca de la aplicación. Figura 4.7: Menú Ayuda Este menú contiene las siguientes opciones: Ayuda: Abre el manual de usuario. Acerca de: Muestra información de la aplicación Barra de Herramientas La barra de herramientas se encuentra situada debajo de la barra de menús y pretende facilitar un acceso rápido a las funcionalidades angulares de la aplicación, como son el inicio y fin de la aplicación y la visualización de la ayuda. El resto de funcionalidades asociadas al control de ejecución de la aplicación quedan situadas en el interfaz lateral. Esta barra se mantiene habilitada en todo momento, independientemente del estado de definición o ejecución en que se encuentre el algoritmo. Figura 4.8: Barra de Herramientas A continuación, explicaremos brevemente la funcionalidad de cada elemento de la barra de herramientas: Nuevo: Solicita el número de parejas que desean establecerse, y a continuación crea una matriz de preferencias para los integrantes del grupo A y otra matriz de preferencias para los integrantes del grupo B. Realiza la misma funcionalidad 69

77 que al seleccionar Inicio Nuevo. Ejecuta la operación Iniciar Emparejamiento. Figura 4.9: Herramienta Nuevo Cerrar: Deja la aplicación en su estado inicial, eliminando, en caso de que existan, las matrices de preferencias y la matriz de emparejamientos. Realiza la misma funcionalidad que al seleccionar Inicio Cerrar. Ejecuta la operación Cerrar Emparejamiento. Figura 4.10: Herramienta Cerrar Ayuda: Se abre el manual de usuario. Realiza la misma funcionalidad que al seleccionar Ayuda Ayuda Interfaz de Ejecución Figura 4.11: Herramienta Ayuda El interfaz de ejecución se encuentra situado en la parte izquierda de la pantalla. Contiene todos los elementos necesarios para definir y controlar el flujo de ejecución de la aplicación, excluyendo las funcionalidades de inicio y fin situadas en la barra de herramientas. De la misma manera que sucede en la barra de menús, no todas las opciones están habilitadas en cualquier momento, sino que se activan o desactivan en función del estado en que se encuentren las matrices de preferencias y la matriz de emparejamientos. 70

78 Figura 4.12: Interfaz de Ejecución El interfaz de ejecución está dividido en los siguientes subgrupos: Algoritmos Preferencias Referencias Emparejamientos Algoritmos Permite definir el algoritmo que desea ejecutarse. 71

79 Figura 4.13: Interfaz de Algoritmos Listas Completas: Ejecuta el algoritmo sobre las matrices de preferencias A y B completas, es decir, todos los integrantes de los grupos A y B tienen que establecer su orden de preferencia incluyendo a todos los integrantes del otro grupo sin excepción. Por lo tanto, no pueden quedar celda de las matrices de preferencias sin rellenar. Listas Incompletas: Ejecuta el algoritmo sobre las matrices de preferencias A y B incompletas, es decir, los integrantes de los grupos A y B pueden establecer sus preferencias sin incluir a todos los integrantes del otro grupo. De esta manera, se permiten matrices de preferencias con celdas sin rellenar siempre que la lista finalice tras su primera celda vacía, es decir, no puede haber celdas rellenas tras una celda vacía. Se trata de un radio button de alternativas, por lo tanto, sólo se permite seleccionar un único algoritmo. Este subgrupo sólo se habilita una vez que se ha iniciado un nuevo emparejamiento, y se deshabilita siempre que el algoritmo no se encuentre en su estado inicial, es decir cuando haya comenzado su ejecución Preferencias Ofrece funcionalidades de ayuda para vaciar y rellenar las matrices de preferencias de forma automática. Figura 4.14: Interfaz de Preferencias 72

80 Borrar: Elimina todas las elecciones definidas en las matrices de preferencias A y B. Todas las celdas de las matrices quedan vacías. Ejecuta la operación Borrar Preferencias. Figura 4.15: Borrar Completar: Completa de manera aleatoria las matrices de preferencias A y B, manteniendo las posibles elecciones definidas manualmente y atendiendo al tipo de algoritmo seleccionado en el grupo anterior. Ejecuta la operación Completar Preferencias. Figura 4.16: Completar Una vez iniciado un emparejamiento, el botón Borrar siempre está habilitado para eliminar las posibles preferencias que hayan sido definidas, pero el botón Completar sólo se habilita cuando se ha seleccionado un algoritmo. Ambos botones se deshabilitan siempre que el algoritmo no se encuentre en su estado inicial, es decir cuando haya comenzado su ejecución Referencias Permite definir el punto de vista desde el que va a ejecutarse el algoritmo. Figura 4.17: Interfaz de Referencias Punto de Vista A s: Ejecuta el algoritmo tomando como referencia inicial las preferencias del grupo A. Por lo tanto, se crea una matriz de emparejamientos 73

81 inicialmente vacía para los integrantes del grupo A, y se irán estudiando sus preferencias sobre el grupo B. Punto de Vista B s: Ejecuta el algoritmo tomando como referencia inicial las preferencias del grupo B. Por lo tanto, se crea una matriz de emparejamientos inicialmente vacía para los integrantes del grupo B, y se irán estudiando sus preferencias sobre el grupo A. Ambos: Ejecuta el algoritmo tomando como referencia inicial las preferencias del grupo A y posteriormente las preferencias del grupo B. Por lo tanto, se crean dos matrices de emparejamientos inicialmente vacías para los integrantes del grupo A y del grupo B, y se irán estudiando secuencialmente sus preferencias sobre el otro grupo. Se trata de un radio button de alternativas, por lo tanto, sólo se permite seleccionar una única referencia. Este subgrupo sólo se habilita una vez que se ha iniciado un nuevo emparejamiento, y se deshabilita siempre que el algoritmo no se encuentre en su estado inicial, es decir cuando ha comenzado su ejecución Emparejamientos Permite controlar el flujo de ejecución del algoritmo seleccionado, actuando directamente sobre la matriz o las matrices de emparejamientos. Se trata, por lo tanto, del interfaz que permite avanzar o retroceder entre las diferentes propuestas de emparejamiento y sus respectivos análisis hasta llegar a un resultado estable. Figura 4.18: Interfaz de Emparejamientos 74

82 Inicio: Inicializa el algoritmo dejando vacías la matriz o matrices de emparejamientos. Ejecuta la operación "Inicializar Algoritmo". Figura 4.19: Inicio Atrás: Retrocede un paso en el algoritmo dejando la matriz de emparejamientos en el estado anterior al actual. Ejecuta la operación "Retroceder Algoritmo". Figura 4.20: Atrás Avanzar: Ejecuta el siguiente paso del algoritmo mostrando una nueva propuesta de emparejamientos o el análisis de la propuesta anterior. Ejecuta la operación "Comprobar Algoritmo" y si no se detectan problemas ejecuta la operación "Avanzar Algoritmo". Figura 4.21: Avanzar Final: Ejecuta todos los pasos del algoritmo hasta obtener emparejamientos estables. Ejecuta la operación "Comprobar Algoritmo" y si no se detectan problemas ejecuta la operación "Finalizar Algoritmo". Figura 4.22: Final Lista Final: Muestra una única columna de la matriz o matrices de emparejamientos con un resultado estable. Ejecuta la operación "Comprobar Algoritmo" y si no se detectan problemas ejecuta la operación "Obtener Lista Final". 75

83 Figura 4.23: Lista Final Este subgrupo sólo se habilita una vez que todas las matrices de preferencias están correctamente definidas según el tipo de algoritmo seleccionado (listas completas o incompletas) y se ha creado la matriz o matrices de emparejamientos mediante la selección de una referencia (punto de vista de A's, de B's o ambos). Una vez que se activa el interfaz únicamente se deshabilita cuando se cierra el emparejamiento. Hay que resaltar el particular funcionamiento del botón "Lista Final", que altera el flujo convencional del algoritmo omitiendo todas las propuestas previas de emparejamiento y sus respectivos análisis de estabilidad, y muestra directamente el resultado final; por lo tanto, una vez que se ejecuta esta operación se inhabilitan los botones de retroceso, avance y final Panel El panel es la parte central de la aplicación donde quedan representadas las preferencias de los integrantes de los grupos A y B, y donde se visualiza una sucesión de propuestas de emparejamientos hasta obtener una elección estable. El panel está definido con una dimensión inicial, pero puede ampliarse al maximizar la ventana y cuenta con un scroll automático que aparece en caso de necesidad para permitir el acceso a todo el contenido que pudiese quedar fuera del campo de visión si el número de parejas definido es elevado Matrices de Preferencias Inicialmente el panel aparece completamente vacío, pero una vez que se genera un nuevo emparejamiento se dibujan en el panel las matrices de preferencias de los grupos A y B con todas sus celdas vacías: 76

84 Figura 4.24: Panel Preferencias Matrices de Emparejamientos Una vez definidas las matrices de preferencias, se pueden rellenar manualmente actuando directamente sobre las celdas que se desean modificar. Para ello se puede hacer click con el botón izquierdo para establecer una preferencia, o con el botón derecho para eliminar la preferencia, de manera que se ejecutan las operaciones "Añadir Preferencia" y "Vaciar Preferencia" respectivamente. La edición manual de las celdas se deshabilita en el momento que el algoritmo no se encuentra en su estado inicial, es decir cuando ha comenzado su ejecución. De manera alternativa se pueden rellenar o vaciar las preferencias de las matrices con las funcionalidades Completar y Borrar del menú Preferencias o del interfaz lateral Preferencias. En el momento que se selecciona un Algoritmo y una Referencia, se dibuja la matriz o las matrices de resultados en las que se muestran propuestas de emparejamientos y el análisis de su estabilidad. 77

85 En función de la referencia seleccionada, se mostrará una matriz de emparejamientos para el grupo A, una matriz para el grupo B o una matriz para el grupo A y otra para el grupo B: Punto de Vista de A`s: Muestra la matriz de emparejamientos del grupo A con una única columna inicialmente vacía. Figura 4.25: Panel Punto de Vista A Punto de Vista de B s: Muestra la matriz de emparejamientos del grupo B con una única columna inicialmente vacía. 78

86 Figura 4.26: Panel Punto de Vista B Ambos: Muestra las matrices de emparejamientos del grupo A y B con una única columna inicialmente vacía para cada una. Figura 4.27: Panel Ambos Finalmente, mediante las opciones presentes en el interfaz de emparejamientos se irán visualizando las distintas propuestas y su análisis hasta llegar a un emparejamiento estable. 79

87 4.1.5 Información La zona de información está situada en la parte inferior de la pantalla y muestra una breve descripción de la funcionalidad asociada a cada una de las interfaces presentes en la aplicación (botones, menús, matriz de preferencias,.. ). Cuando el puntero del ratón pasa por encima de cada elemento de la aplicación con el que se puede interactuar, se muestra un mensaje que pretende ser de utilidad para la comprensión de cada funcionalidad. La información desaparece al alejar el puntero del ratón del elemento interactivo. En la siguiente figura de ejemplo, se muestra el mensaje informativo que aparece al pasar el puntero del ratón por cada una de las celdas editables de las matrices de preferencias: 4.2 Operaciones Figura 4.28: Información A continuación, se describen las principales operaciones que integran la operativa de la aplicación. Estas operaciones pueden dividirse en tres subgrupos: Herramientas Preferencias Emparejamientos 80

88 4.2.1 Herramientas Este subgrupo está formado por las operaciones de comienzo y fin de un emparejamiento, funcionalidades que están dotadas de acceso rápido en la barra de herramientas Iniciar Emparejamiento La operación "Iniciar Emparejamiento" permite comenzar a definir un emparejamiento. Es accesible desde la opción "Nuevo" del menú Inicio y desde el icono "Nuevo" de la barra de Herramientas. Se trata de la primera operación que debe ejecutarse para hacer uso de la aplicación, puesto que su propósito es definir el número de parejas sobre las que se va a buscar estabilidad en emparejamientos. Al ejecutar esta operación aparece la siguiente ventana: Figura 4.29: Nuevo Emparejamiento Desde esta ventana se realiza una validación del valor introducido por el usuario. No se permite introducir un valor no numérico, en caso contrario se muestra un mensaje de error advirtiendo de esta circunstancia: 81

89 Figura 4.30: Error - Nuevo Tampoco se permite introducir un número inferior o superior a los límites establecidos en la aplicación (1-99), en caso contrario se muestra otro mensaje de error indicando que el número está fuera de rango: Figura 4.31: Error - Fuera de Rango Una vez definido correctamente el número de parejas que forman el emparejamiento, se dibuja en el panel las matrices de preferencias de A y B, se permite la edición manual de todas las celdas, y se habilitan la elección del algoritmo desde la barra de menús o desde el interfaz lateral Cerrar Emparejamiento La operación "Cerrar Emparejamiento" permite finalizar un emparejamiento previamente inicializado. Es accesible desde la opción "Cerrar" del menú Inicio y desde el icono "Cerrar" de la barra de Herramientas. Deja la aplicación en su estado inicial. Se eliminan las matrices de preferencias y de emparejamientos que estuviesen definidas y todo su contenido, el panel queda completamente vacío y se deshabilitan todos los botones del interfaz lateral y todas las opciones de la barra de menús con excepción de los menús Inicio y Ayuda. 82

90 4.2.2 Preferencias Este subgrupo está formado por las operaciones que permiten manipular las celdas de las matrices de preferencias, ya sea de forma manual o automática Añadir Preferencia La operación "Añadir Preferencia" permite establecer el contenido de una celda. Es accesible desde el panel de matrices. Al hacer click con el botón izquierdo del ratón en una celda concreta de las matrices de preferencias (A ó B) aparece una ventana en la que se solicita la introducción de uno de los subíndices identificativos de los integrantes del grupo opuesto que quedan libres, es decir, que no se encuentran actualmente en otra posición de la lista. Figura 4.32: Valor Celda Desde esta ventana se realiza una validación del valor introducido por el usuario. No se permite introducir un valor no numérico, en caso contrario se muestra un mensaje de error advirtiendo de esta circunstancia: 83

91 Figura 4.33: Error - Celda Tampoco se permite introducir un número distinto a los definidos en la lista "Posibilidades" en la propia ventana, en caso contrario se muestra otro mensaje de error indicando cuales son los subíndices disponibles: Figura 4.34: Error Posibilidades Esta operación se encuentra habilitada mientras existen las matrices de preferencias y no ha comenzado la ejecución del algoritmo Vaciar Preferencia La operación "Vaciar Preferencia" permite vaciar el contenido de una celda. Es accesible desde el panel de matrices. Al hacer click con el botón derecho del ratón en una celda concreta de las matrices de preferencias A ó B se elimina el contenido que se hubiese definido previamente. Esta operación se encuentra habilitada mientras existen las matrices de preferencias y no ha comenzado la ejecución del algoritmo. 84

92 Borrar Preferencias La operación "Borrar Preferencias" permite vaciar en un solo paso todas las celdas de las matrices de preferencias A y B. Es accesible desde la opción "Borrar" del menú Preferencias y desde el icono "Borrar" del interfaz lateral Preferencias. Esta operación permanece habilitada mientras se mantiene abierto el emparejamiento definido, y sólo se desactiva cuando el algoritmo no se encuentra en su estado inicial, es decir cuando ha comenzado su ejecución Completar Preferencias Esta operación permite completar de manera aleatoria las matrices de preferencias A y B. Es accesible desde la opción "Completar" del menú Preferencias y desde el icono "Completar" del interfaz lateral Preferencias. Las matrices se completan respetando las siguientes premisas: Se mantienen todas las preferencias definidas previamente de manera manual. No se permite repetición de preferencias en las diferentes listas de cada matriz. Cada celda se rellena aleatoriamente entre las opciones restantes de cada lista de preferencias. Si el algoritmo seleccionado es Listas Completas, se rellenan todas las celdas que estuviesen vacías en cada matriz. Si el algoritmo es Listas Incompletas, se rellenan las matrices permitiendo listas de preferencias que finalizan tras una primera celda vacía elegida aleatoriamente. Esta operación se encuentra habilitada desde el momento que se selecciona un algoritmo, y se inhabilita cuando comienza su ejecución. 85

93 4.2.3 Emparejamientos Este subgrupo está formado por las operaciones que permiten avanzar o retroceder la ejecución del algoritmo por todos y cada uno de sus estados Inicializar Algoritmo Esta operación permite devolver el algoritmo a su estado inicial. Es accesible desde el icono "Inicio" del interfaz lateral Emparejamientos. Se mantienen la selección de algoritmo y referencia, pero se reinicia la matriz o matrices de emparejamientos a su estado inicial, dejando todas las celdas vacías sin mostrar ninguna propuesta de emparejamiento. Esta operación se encuentra habilitada mientras se mantiene seleccionado todo lo necesario para la definición de un emparejamiento (algoritmo y referencia), independiente de si las matrices de preferencias están correctamente rellenas o del estado en que se encuentre la ejecución del algoritmo Retroceder Algoritmo Esta operación permite acceder al paso anterior del algoritmo. Es accesible desde el icono "Atrás" del interfaz lateral Emparejamientos. Devuelve la matriz de emparejamientos al estado inmediatamente anterior al estado actual de ejecución. Por lo tanto, deja de mostrar una propuesta de emparejamientos o el análisis de estabilidad de la última propuesta existente. Esta operación se encuentra habilitada mientras se mantiene seleccionado todo lo necesario para la definición de un emparejamiento (algoritmo y referencia), con independencia de si las matrices de preferencias están correctamente rellenas o del estado en que se encuentre la ejecución del algoritmo. Excepcionalmente, esta operación queda deshabilitada al ejecutar la operación Obtener Lista Final puesto que altera el flujo convencional de ejecución del algoritmo. 86

94 Comprobar Algoritmo Esta operación realiza una serie de comprobaciones en las matrices de preferencias antes de permitir que comience la ejecución del algoritmo seleccionado. Es accesible desde los iconos "Avanzar", "Final" y "Lista Final" del interfaz lateral Emparejamientos. En función del algoritmo seleccionado se realizan las siguientes comprobaciones: Listas Completas: Se comprueba si existen celdas vacías, primero se analiza la matriz de preferencias A, y a continuación la matriz de preferencias B. En el caso de que se identifique esta circunstancia se muestra el siguiente mensaje de advertencia: Figura 4.35: Error Listas Completas Listas Completas: Se comprueba si existen listas incompletas con un formato erróneo, primero se analiza la matriz de preferencias A, y a continuación la matriz de preferencias B. Una lista incompleta tiene un formato erróneo cuando tras una celda vacía existen celdas con un valor definido. En el caso de que se identifique esta circunstancia se muestra el siguiente mensaje de advertencia: Figura 4.36: Error Listas Incompletas 87

95 Esta operación se ejecuta automáticamente antes de comenzar las operaciones Avanzar Algoritmo, Finalizar Algoritmo y Obtener Lista Final, y únicamente si su resultado es positivo se permite continuar con la siguiente operación Avanzar Algoritmo Esta operación permite ejecutar el siguiente paso del algoritmo. Es accesible desde el icono "Avanzar" del interfaz lateral Emparejamientos. Avanza la matriz de emparejamientos al estado inmediatamente posterior al estado actual de ejecución. Por lo tanto, muestra un nuevo grupo de propuestas en la matriz de emparejamientos, realiza algún descarte al analizar la última columna de propuestas o informa de que las propuestas actuales forman un emparejamiento estable. En el caso de que se haya seleccionado la referencia Ambos, si el estado actual es una propuesta de emparejamientos estable para A, mostrará una propuesta inicial de emparejamientos para B. Esta operación se encuentra habilitada mientras se mantiene seleccionado todo lo necesario para la definición de un emparejamiento (algoritmo y referencia), pero su ejecución está supeditada al resultado satisfactorio de la operación Comprobar Algoritmo. Excepcionalmente, esta operación queda deshabilitada al ejecutar la operación Obtener Lista Final puesto que altera el flujo convencional de ejecución del algoritmo Finalizar Algoritmo Esta operación permite ejecutar todos los pasos del algoritmo. Es accesible desde el icono "Finalizar" del interfaz lateral Emparejamientos. Muestra todas las columnas de la matriz o matrices de emparejamientos con todas las propuestas y sus respectivos análisis hasta llegar a un resultado final de propuestas de emparejamientos estables. 88

96 Esta operación se encuentra habilitada mientras se mantiene seleccionado todo lo necesario para la definición de un emparejamiento (algoritmo y referencia), pero su ejecución está supeditada al resultado satisfactorio de la operación Comprobar Algoritmo. Excepcionalmente, esta operación queda deshabilitada al ejecutar la operación Obtener Lista Final puesto que altera el flujo convencional de ejecución del algoritmo Obtener Lista Final Esta operación permite visualizar una única columna de la matriz o matrices de emparejamientos con un resultado estable. Es accesible desde el icono "Lista" del interfaz lateral Emparejamientos. Muestra únicamente una columna en la matriz o matrices de emparejamientos con una propuesta de emparejamiento estable. Se trata de una funcionalidad que altera el flujo convencional de ejecución del algoritmo ya que omite todas las propuestas previas de emparejamiento y su análisis de estabilidad, mostrando directamente el resultado final. Esta operación se encuentra habilitada mientras se mantiene seleccionado todo lo necesario para la definición de un emparejamiento (algoritmo y referencia), pero su ejecución está supeditada al resultado satisfactorio de la operación Comprobar Algoritmo. 4.3 Ejecución En primer lugar, es interesante destacar que en todo momento existe la posibilidad de cambiar el idioma del aplicativo desde el menú Idioma. El cambio de idioma afecta a cualquier parte de la aplicación con presencia de texto: títulos de ventana, menús, interfaces y mensajes informativos. Los idiomas disponibles son español (predeterminado) e inglés. 89

97 El primer paso necesario para comenzar a utilizar la aplicación EeE consiste en crear un nuevo emparejamiento desde la opción Nuevo del menú Inicio o desde el botón Nuevo de la barra de herramientas. A continuación, es necesario definir el número de parejas para las que se pretende encontrar un emparejamiento estable; los algoritmos trabajan sobre grupos con el mismo número de integrantes, por lo tanto, el número de parejas establecido define la dimensión tanto de la matriz A como de la matriz B. En cualquier momento se da la opción de cerrar el emparejamiento establecido y cualquier definición que llevase asociada mediante la opción Cerrar del menú Inicio o desde el botón Cerrar de la barra de herramientas. De esta manera la aplicación vuelve al estado inicial y sería necesario volver al primer paso para definir un nuevo emparejamiento. Una vez generadas las matrices de preferencias se permite comenzar a definir las prioridades de cada integrante de un grupo sobre los integrantes del grupo opuesto. Para definir las preferencias de forma manual, basta con pulsar el botón izquierdo sobre cada una de las celdas de las matrices de preferencias del Panel y definir las prioridades de emparejamiento de los integrantes de cada grupo, de manera que las primeras posiciones de la lista implican una mayor preferencia que el resto de posibilidades. Al pulsar en cada celda se permite elegir entre los integrantes del grupo contrario que no aparecen en ninguna otra posición de su propia lista. De la misma manera, para modificar una preferencia simplemente hay que pulsar el botón izquierdo sobre su celda asociada y elegir una nueva prioridad. Al pulsar el botón derecho sobre una celda se elimina su preferencia asociada. Alternativamente, se puede rellenar las celdas que han quedado sin rellenar de manera aleatoria mediante el botón Completar del interfaz lateral Preferencias. Sin embargo, este botón únicamente se habilita cuando se ha seleccionado uno de los algoritmos existentes en el interfaz lateral Algoritmos o desde el menú Algoritmos, puesto que 90

98 varía la forma en que se pueden rellenar las matrices. Si el algoritmo es Listas Completas los integrantes de cada grupo deben indicar sus preferencias sobre todos los integrantes del otro grupo sin excepción, si por el contrario el algoritmo es Listas Incompletas se permite que los integrantes de un grupo dejen preferencias sin definir sobre el grupo opuesto. Si se desea devolver las matrices de emparejamientos a su estado inicial de definición, se puede utilizar el botón Borrar del interfaz lateral Preferencias. Las matrices se mantienen definidas con el número de parejas previamente seleccionado, pero todas las preferencias que se hubiesen establecido manual o aleatoriamente, quedan eliminadas. El siguiente paso consiste en definir un punto de vista que sirva como referencia para buscar emparejamientos estables. Para ello, hay que seleccionar una de las opciones del interfaz lateral Referencias o desde el menú Referencias. Si se selecciona la referencia Punto de Vista A s se comienza a analizar propuestas de emparejamientos tomando como punto de partida las preferencias establecidas por el grupo A. Análogamente, si se selecciona la referencia Punto de Vista B s se toma como punto de partida las preferencias establecidas por el grupo B. Si se selecciona la referencia Ambos se generan dos matrices de emparejamientos en las que se toma inicialmente como punto de partida las preferencias del grupo A y posteriormente las preferencias del grupo B. En el momento que las matrices de preferencias están correctamente rellenas y se ha establecido la referencia deseada, se puede comenzar la ejecución del algoritmo. Sin embargo, si las matrices no están correctamente rellenas en función del algoritmo deseado, se muestra un mensaje de advertencia que impide la ejecución del algoritmo. Finalmente, mediante los botones del interfaz lateral Emparejamientos se permite recorrer todos los estados del algoritmo que llevan a la obtención de emparejamientos estables. El botón Avanzar ejecuta el paso del algoritmo inmediatamente posterior al actual. 91

99 Inicialmente muestra una propuesta de emparejamientos con la primera preferencia de los integrantes del grupo A. Figura 4.37: Propuesta Inicial Al pulsar nuevamente el botón "Avanzar" se realiza un análisis de estabilidad sobre la propuesta anterior. Durante este análisis se estudian las preferencias de los integrantes del grupo B que han recibido más de una propuesta de emparejamiento, y se descartan aquellas propuestas con menor prioridad según su lista de preferencias. En el siguiente ejemplo, se descarta la propuesta de A2, puesto que A1 tiene mayor prioridad dentro de las preferencias de B4. 92

100 Figura 4.38: Análisis Propuesta La siguiente vez que se pulsa el botón "Avanzar " se muestra una nueva propuesta, mantenido las preferencias que no fueron descartadas en el paso de análisis anterior y proponiendo la preferencia inmediatamente posterior de los integrantes del grupo A que sufrieron un descarte. 93

101 Figura 4.39: Nueva Propuesta Cuando el análisis de la última propuesta determina que los emparejamientos presentes son estables, se ha alcanzado el estado final de la ejecución del algoritmo y se muestra un mensaje indicando esta circunstancia. Figura 4.40: Mensaje Emparejamientos Estables El botón Final ejecuta todos los pasos de propuesta de emparejamientos y análisis hasta obtener estabilidad, independiente del estado en la que se encuentre el algoritmo. 94

102 Figura 4.41: Emparejamientos Estables El botón Lista Final permite acceder directamente al final del algoritmo sin pasar por todos los estados intermedios del algoritmo; simplemente muestra una lista con los emparejamientos estables. 95

1 st 2 nd 3 rd Jorge Ana Bea Clara. Ana Luis Jorge Bea Jorge Luis Clara Jorge Luis. Luis Bea Ana. Mario Ana Bea Clara. Jorge Ana Bea.

1 st 2 nd 3 rd Jorge Ana Bea Clara. Ana Luis Jorge Bea Jorge Luis Clara Jorge Luis. Luis Bea Ana. Mario Ana Bea Clara. Jorge Ana Bea. Asignaciones Estables Análisis y Diseño de Algoritmos Problema Stable Matching Problem (David Gale & Lloyd Shapley, 1962) Cómo diseñar el proceso de admisión de alumnos de la Universidad o de asignación

Más detalles

Tema: Lenguaje Unificado de Modelado (UML)

Tema: Lenguaje Unificado de Modelado (UML) POO, Guía No.2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación Orientada a Objetos Tema: Lenguaje Unificado de Modelado (UML) Competencia Desarrolla sistemas de información informáticos

Más detalles

1. MANUAL DE USUARIO Funcionamiento general

1. MANUAL DE USUARIO Funcionamiento general 1. MANUAL DE USUARIO En esta sección explicaremos de manera detallada cómo utilizar el software implementado en este proyecto. En primero lugar haremos una explicación de cómo funciona la operativa de

Más detalles

Tema: Herramientas UML, Análisis y diseño UML

Tema: Herramientas UML, Análisis y diseño UML Programación II. Guía No.2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herramientas UML, Análisis y diseño UML Objetivos Conocer una herramienta de modelado para la solución

Más detalles

Manual del SGE. Este manual es el tutorial de uso del SGE. 22 de octubre

Manual del SGE. Este manual es el tutorial de uso del SGE. 22 de octubre Manual del SGE Este manual es el tutorial de uso del SGE. 22 de octubre 2009 1. Introducción... 1 1.1 Qué es el SGE?... 1 1.2 Niveles de usuario... 1 1.3 Navegación por menús... 1 2. Usuario... 2 2.1 Cambiar

Más detalles

Una Interfaz Grafo-Matriz

Una Interfaz Grafo-Matriz Una Interfaz Grafo-Matriz R. Carballo, C. Escribano, M.A. Asunción Sastre Dept. Matemática Aplicada F.Informática. U.P.M. Boadilla del Monte Madrid, 28660-Madrid e-mail: cescribano@fi.uib.es Resumen. El

Más detalles

Para esta práctica usaremos los diagramas de casos de uso, diagramas de secuencia, y los diagramas de clase.

Para esta práctica usaremos los diagramas de casos de uso, diagramas de secuencia, y los diagramas de clase. Programación II, Guía #3 17 17 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUÍA #3: Herramientas UML. Análisis y diseño UML. Objetivos Conocer una herramienta de modelado para

Más detalles

UNIVERSIDAD MEXIQUENSE DEL BICENTENARIO CAMPUS ACAMBAY LICENCIATURA EN INFORMÁTICA DESARROLLO DE APLICACIÓN PARA AMBIENTES DISTRIBUIDOS

UNIVERSIDAD MEXIQUENSE DEL BICENTENARIO CAMPUS ACAMBAY LICENCIATURA EN INFORMÁTICA DESARROLLO DE APLICACIÓN PARA AMBIENTES DISTRIBUIDOS UNIVERSIDAD MEXIQUENSE DEL BICENTENARIO CAMPUS ACAMBAY LICENCIATURA EN INFORMÁTICA DESARROLLO DE APLICACIÓN PARA AMBIENTES DISTRIBUIDOS Proyecto de Implementación de un Sistema de Información Bass line

Más detalles

Algoritmo de Gale-Shapley. Variaciones y alternativas

Algoritmo de Gale-Shapley. Variaciones y alternativas Algoritmo de Gale-Shapley. Variaciones y alternativas Trabajo Fin de Grado Grado en Matemáticas Juan Pablo Mínguez Trabajo dirigido por Luis Martínez Carlos Gorria Leioa, 1 de septiembre de 2014 Índice

Más detalles

Desarrollo Orientado a Objetos en Métrica v. 3

Desarrollo Orientado a Objetos en Métrica v. 3 Desarrollo Orientado a Objetos en Métrica v. 3 Carlos Rossi Jiménez c 2003 Carlos Rossi Jiménez. Universidad de Málaga p.1/45 Estructura del curso 1. Estructura de Métrica v. 3 2. Técnicas orientadas a

Más detalles

CIDE, SA. RIF: J NIT: MODELO FUNCIONAL

CIDE, SA. RIF: J NIT: MODELO FUNCIONAL MODELO FUNCIONAL SIGA C O NTE NlD O Introducción Aspectos Conceptuales Definición de modelo Requisitos de un Modelo Funcional Modelando la Funcionalidad del Sistema: Diagrama de Casos de Uso Definición

Más detalles

INGENIERÍA DEL SOFTWARE

INGENIERÍA DEL SOFTWARE ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ MANUEL FÉLIX LÓPEZ CARRERA INFORMÁTICA SEMESTRE SÉPTIMO PERIODO ABR. /SEP.-2015 INGENIERÍA DEL SOFTWARE TEMA: RESUMEN#4: LENGUAJE UNIFICADO DE MODELADO

Más detalles

Unidad V. UML. Tema I. Conceptos Básicos Tema II. Definición de UML. Vocabulario Tema III. Elementos UML Tema IV. Diagramas.

Unidad V. UML. Tema I. Conceptos Básicos Tema II. Definición de UML. Vocabulario Tema III. Elementos UML Tema IV. Diagramas. Unidad V. UML Tema I. Conceptos Básicos Tema II. Definición de UML. Vocabulario Tema III. Elementos UML Tema IV. Diagramas Objetivos Conocer el modelo UML Utilizar el modelo UML como parte de la metodología

Más detalles

Ingeniería a de Software CC51A

Ingeniería a de Software CC51A Ingeniería a de Software CC51A Clase Auxiliar Auxiliar: Andrés s Neyem Oficina 418 de Doctorado aneyem@dcc.uchile.cl 19 de Marzo de 2007 Aspectos Generales Grupo CC51A Diseño Cliente Requisitos Usuario

Más detalles

Tema: Herramientas UML, Análisis y diseño UML

Tema: Herramientas UML, Análisis y diseño UML Programación II. Guía No.3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herramientas UML, Análisis y diseño UML Objetivos Conocer una herramienta de modelado para la solución

Más detalles

Tema: Herramientas UML, Análisis y diseño UML

Tema: Herramientas UML, Análisis y diseño UML Programación II. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herramientas UML, Análisis y diseño UML Objetivo Conocer una herramienta de modelado para la solución

Más detalles

Aplicación para el Registro de Piscinas de Salud Pública del Servicio Canario de la Salud. Manual de Usuario 1.7

Aplicación para el Registro de Piscinas de Salud Pública del Servicio Canario de la Salud. Manual de Usuario 1.7 Aplicación para el Registro de Piscinas de Salud Pública del Servicio Canario de la Salud. Manual de Usuario 1.7 Índice 1. Introducción... 3 2. Cómo acceder a la aplicación?... 4 3. Cómo trabajar con la

Más detalles

Sistema de análisis de vídeo basado en tecnología IP

Sistema de análisis de vídeo basado en tecnología IP Sistema de análisis de vídeo basado en tecnología IP 1 Instalación...2 2 Registro...4 3 Configuración...5 3.1 Perfiles... 6 3.1.1 Regiones... 8 3.1.2 Variables... 9 3.1.3 Testear variables... 11 3.2 Configuración

Más detalles

Manual de Usuario. Cuadros Horarios. Grupos

Manual de Usuario. Cuadros Horarios. Grupos Manual de Usuario Cuadros Horarios Grupos ÍNDICE 1 Introducción...2 2 Grupos...3 3 Alumnos del grupo... 12 4 Tutores del grupo... 15 5 Cuadro horario... 19 2010 Cuadros Horarios. Grupos Página: 1 1 Introducción

Más detalles

Manual de Usuario Caso de uso Gestión de Autorizaciones Específicas de Transporte Terrestre de Contenedores

Manual de Usuario Caso de uso Gestión de Autorizaciones Específicas de Transporte Terrestre de Contenedores Manual de Usuario Caso de uso 09.02.01 Gestión de Autorizaciones Específicas de Transporte Terrestre de Contenedores Fecha creación 21-10-11 Redactado por Equipo Trabajo DELAWARE Versión 1.0 Revisado por

Más detalles

Ingeniería de requerimientos de software: Análisis. Dpto. de Ingeniería de Sistemas y Computación Universidad de los Andes

Ingeniería de requerimientos de software: Análisis. Dpto. de Ingeniería de Sistemas y Computación Universidad de los Andes Ingeniería de requerimientos de software: Análisis Dpto. de Ingeniería de Sistemas y Computación Universidad de los Andes Referencias El Lenguaje Unificado de Modelado. Grady Booch, James Rumbaugh e Ivar

Más detalles

Manual de usuario Gestión Académica. Bachillerato Centros Públicos. Módulos Oferta Formativa y Solicitud de Matrícula..

Manual de usuario Gestión Académica. Bachillerato Centros Públicos. Módulos Oferta Formativa y Solicitud de Matrícula.. Manual de usuario Gestión Académica. Bachillerato Centros Públicos. Módulos Oferta Formativa y Solicitud de Matrícula.. Fecha: 29/03/2010 Referencia: EJIE S.A. Mediterráneo, 14 Tel. 945 01 73 00* Fax.

Más detalles

1. GRAFOS : CONCEPTOS BASICOS

1. GRAFOS : CONCEPTOS BASICOS 1. GRAFOS : CONCEPTOS BASICOS Sea V un conjunto finito no vacio y sea E V x V. El par (V, E) es un grafo no dirigido, donde V es un conjunto de vértices o nodos y E es un conjunto de aristas. Denotaremos

Más detalles

PLAN DE TRABAJO PROFESORAL PERFIL DECANO / JEFE DE DEPARTAMENTO

PLAN DE TRABAJO PROFESORAL PERFIL DECANO / JEFE DE DEPARTAMENTO PLAN DE TRABAJO PROFESORAL PERFIL DECANO / JEFE DE DEPARTAMENTO TABLA DE CONTENIDO INGRESO AL SISTEMA... 2 CURSOS EN POSGRADO... 3 REGISTRO DEL AVAL... 7 REGISTRO DE ACTIVIDADES... 11 Registrar un horario

Más detalles

CAPÍTULO 4 MANUAL DE USUARIO. 4.1 Introducción. 4.2 Interfaz de Usuario

CAPÍTULO 4 MANUAL DE USUARIO. 4.1 Introducción. 4.2 Interfaz de Usuario CAPÍTULO 4 MANUAL DE USUARIO 4.1 Introducción En este capítulo se describirá de forma detallada el funcionamiento de la aplicación. La aplicación global genera tres tipos de teselaciones periódicas del

Más detalles

Procedimiento para crear un curso en Moodle Editar un curso en Moodle

Procedimiento para crear un curso en Moodle Editar un curso en Moodle Procedimiento para crear un curso en Moodle Editar un curso en Moodle ÍNDICE Procedimiento para crear un curso... 3 Características básicas del curso... 6 Estructura general del curso... 6 Módulos comunes

Más detalles

Cristian Blanco

Cristian Blanco UNIDAD DIDÁCTICA 8. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS. DIAGRAMAS DE COMPORTAMIENTO En el siguiente enlace tienes una descripción y algunos ejemplos de todos los diagramas UML.: http://jms32.eresmas.net/tacticos/uml/umlindex.html

Más detalles

Manual de Usuario Página - 2/9

Manual de Usuario Página - 2/9 Manual de Usuario Página - 2/9 Tabla de Contenido: 1. Algunas consideraciones sobre el plan de cuentas... 3 2. Crear un plan de cuentas... 5 3. Listar el plan de cuentas... 8 4. Creación del Plan de cuentas

Más detalles

Manual de Capacitación y de Usuario Internet. Módulo: Autoimpresores

Manual de Capacitación y de Usuario Internet. Módulo: Autoimpresores Manual de Capacitación y de Usuario Internet Módulo: Autoimpresores Junio 2011 Página 1 de 60 Tabla de Contenido 1.- INTRODUCCIÓN... 3 2.- DEFINICIONES GENERALES... 3 ESQUEMA COMÚN PARA LAS PANTALLAS...

Más detalles

Algoritmo. Programa. Lenguaje algorítmico

Algoritmo. Programa. Lenguaje algorítmico ESCUELA DE EDUCACION SECUNDARIA TECNICA N 3 LENGUAJE ELECTRONICO PROFESOR: PAOLO, MARCOS GERMAN TEMA: ALGORITMOS Algoritmo Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y

Más detalles

Tema 1. Introducción a UML C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A

Tema 1. Introducción a UML C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A Tema 1. Introducción a UML C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A B E L É N M E L I Á N BAT I STA J O S É MARCOS M O R

Más detalles

3. DESARROLLO Y HERRAMIENTAS

3. DESARROLLO Y HERRAMIENTAS 14 3. DESARROLLO Y HERRAMIENTAS 3.1 Desarrollo El primer paso es recolectar toda la información posible y analizar cuál será de utilidad y cual no. Documentación sobre el sistema (Sistema integrado de

Más detalles

TEMA 6: INTRODUCCIÓN A UML

TEMA 6: INTRODUCCIÓN A UML TEMA 6: INTRODUCCIÓN A UML Por qué modelamos? El modelado es una parte central de todas las actividades que conducen a la producción de un software de calidad. Como tal la ingeniería software debe basarse

Más detalles

MANUAL DE USUARIO SISTEMA DE COSTOS ABC SICUD ABC

MANUAL DE USUARIO SISTEMA DE COSTOS ABC SICUD ABC MANUAL DE USUARIO SISTEMA DE COSTOS ABC SICUD ABC UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS COORDINACION GENERAL DE AUTOEVALUACIÓN Y ACREDITACION 2006 1 TABLA DE CONTENIDO INTRODUCCIÓN...5 1. GENERALIDADES

Más detalles

1. Propósito. Establecer los puntos que debe cubrir como referencia documental mínima un documento de Diseño de sistemas automatizados.

1. Propósito. Establecer los puntos que debe cubrir como referencia documental mínima un documento de Diseño de sistemas automatizados. Página 1 de 8 1. Propósito. Establecer los puntos que debe cubrir como referencia documental mínima un documento de de sistemas automatizados. 2. Ámbito de responsabilidad. RDSI Responsable del Desarrollo

Más detalles

Microsoft Office XP Excel XP (II)

Microsoft Office XP Excel XP (II) PRÁCTICA 2 HOJA DE CÁLCULO Microsoft Office XP Excel XP (II) 0. Nombres de las hojas de cálculo. Los nombres de las hojas de cálculo de un libro de trabajo pueden ser modificados, de manera que puedan

Más detalles

4. Operación general de las pantallas

4. Operación general de las pantallas 4. Operación general de las pantallas Este capítulo presenta la operación general de las páginas más utilizadas en el sistema, permitiendo con esto una fácil comprensión del Usuario en el manejo de la

Más detalles

Manual de Usuario. Mayo 2012.

Manual de Usuario. Mayo 2012. Mayo 2012. INDICE 1.Introducción... 3 2.Requisitos... 4 3.Funcionamiento de las pantallas... 5 3.1. Ayuda al usuario... 5 3.2. Cambio de Idioma... 5 3.3. Menú Horizontal... 6 3.4. Sendero de migas... 6

Más detalles

Caso de Uso. Herramienta de relevamiento. domingo, 28 de octubre de 12

Caso de Uso. Herramienta de relevamiento. domingo, 28 de octubre de 12 Herramienta de relevamiento Son descripciones de un conjunto de secuencia de acciones que ejecuta el sistema para obtener un resultado Los casos de uso especifican un comportamiento deseado, no como se

Más detalles

Manuales de Mozilla Firefox

Manuales de Mozilla Firefox Es un navegador de Internet distribuido bajo licencia GNU GPL el cual permite el acceso a páginas en la Web en forma rápida, segura y eficiente. Posee una interfaz intuitiva, se puede configurar para bloquear

Más detalles

UML Unifield Modeling Languaje

UML Unifield Modeling Languaje UML Unifield Modeling Languaje 1 Modelo: Representación abstracta de una especificación, un diseño o un sistema. Generalmente, basada en una visión particular y compuesta por uno o más diagramas. Lenguaje

Más detalles

EDOMO EDOMO. Edomo Basic. Manual de programación. Módulo de PLANOS Versión /04/2007. Indomótika. Indomótika INDICE

EDOMO EDOMO. Edomo Basic. Manual de programación. Módulo de PLANOS Versión /04/2007. Indomótika. Indomótika INDICE INDICE INTRODUCCIÓN... 3 ESPECIFICACIONES... 3. Módulo configuración planos... 3.. Pestaña Localizaciones... 3.. Pestaña Editar Localización... 5..3 Pestaña Imágenes... 9..4 Pestaña Extras... 3 MODO DE

Más detalles

ESCUELA POLITÉCNICA NACIONAL

ESCUELA POLITÉCNICA NACIONAL ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN PROCESO PARA LA ELABORACIÓN DE REACTIVOS EXAMEN PILOTO DE COMPETENCIAS ESPECÍFICAS Julio 2013 Contenido 1.

Más detalles

Ministerio de Economía, Industria y Comercio (MEIC) -Trámites Costa Rica- Manual de usuario: Administrador Institucional. Cliente

Ministerio de Economía, Industria y Comercio (MEIC) -Trámites Costa Rica- Manual de usuario: Administrador Institucional. Cliente Manual de usuario: Administrador Institucional Sistema de Simplificación de Trámites y Mejora Regulatoria Cliente Ministerio de Economía, Industria y Comercio (MEIC) -Trámites Costa Rica- Versión: 1.0

Más detalles

Sistema De Asignación De Código Personal

Sistema De Asignación De Código Personal Sistema De Asignación De Código Personal MANUAL DE LA APLICACIÓN PARA GESTIÓN Y PROMOCIÓN DE ALUMNOS Ref: BJAVIER/JSAC 210509; 1900 Introducción El código personal es el identificador único para cada estudiante,

Más detalles

Guía de Uso. Certificación de trabajos desde la Web

Guía de Uso. Certificación de trabajos desde la Web Guía de Uso Certificación de trabajos desde la Web JULIO 2009 INDICE Acceso Certificación de trabajos desde la Web Visualizar certificaciones 3 6 17 2 1. ACCESO El acceso a la certificación de trabajos

Más detalles

Vemos, pues, que esta forma de organizar los datos es mucho más potente que utilizando las tabulaciones u otros métodos.

Vemos, pues, que esta forma de organizar los datos es mucho más potente que utilizando las tabulaciones u otros métodos. Tablas Las tablas permiten organizar la información en filas y columnas, de forma que se pueden realizar operaciones y tratamientos sobre las filas y columnas. Por ejemplo, obtener el valor medio de los

Más detalles

Manual del candidato. Aplicación de Sede electrónica para la convocatoria de interinos

Manual del candidato. Aplicación de Sede electrónica para la convocatoria de interinos Manual del candidato. Aplicación de Sede electrónica para la convocatoria de interinos Contenido Darse de alta en Sede electrónica... 2 Crear una nueva solicitud... 4 Ver ayuda en la propia solicitud...

Más detalles

Manual de usuario Tramitación de grúas torre. Manual de usuario. Tramitación de grúas torre

Manual de usuario Tramitación de grúas torre. Manual de usuario. Tramitación de grúas torre Manual de usuario Tramitación de grúas torre 1 Índice 1. INTRODUCCIÓN... 3 2. SECUENCIA PARA LA TRAMITACIÓN... 4 2.1 Acceso al portal de tramitación... 4 2.2 Iniciar un nuevo expediente, es decir, preparar

Más detalles

Manual de Usuario. Funcionalidades Genéricas de las pantallas de SÒSTRAT

Manual de Usuario. Funcionalidades Genéricas de las pantallas de SÒSTRAT de Funcionalidades Genéricas de las pantallas de SÒSTRAT Tabla de contenido 1. INTRODUCCIÓN... 2 2. FUNCIONALIDADES DEL SISTEMA... 3 Funcionalidades sobre "Trabajar Con"... 3 Funcionalidad de Nuevo Registro...

Más detalles

GUÍA DE USUARIO. 1 Requisitos Introducción Pantalla selección Año y Semestre Pantalla de los datos del espectáculo...

GUÍA DE USUARIO. 1 Requisitos Introducción Pantalla selección Año y Semestre Pantalla de los datos del espectáculo... GUÍA DE USUARIO 1 Contenido 1 Requisitos.... 2 2 Introducción.... 2 3 Pantalla selección Año y Semestre.... 3 4 Pantalla de los datos del espectáculo.... 4 5 Pantalla de los datos de la compañía y distribuidora....

Más detalles

CASO DE PRUEBA: Sistema para el alquiler, control de películas y clientes en una videotienda

CASO DE PRUEBA: Sistema para el alquiler, control de películas y clientes en una videotienda CASO DE PRUEBA: Sistema para el alquiler, control de películas y clientes en una videotienda Documento de casos de uso Versión Historia de Revisión Fecha Versión Descripción Responsable 25/02/2005

Más detalles

12/08/2017. Casos de uso. Casos de uso. Casos de uso. Casos de uso

12/08/2017. Casos de uso. Casos de uso. Casos de uso. Casos de uso ICI3242 Modelamiento de sistemas de software Escuela de Ingeniería Informática Pontificia Universidad Católica de Valparaíso Los Casos de Uso (Jacobson) describen bajo la forma de acciones y reacciones

Más detalles

COPYRIGHT El copyright de este documento es propiedad de Camerfirma.

COPYRIGHT El copyright de este documento es propiedad de Camerfirma. COPYRIGHT El copyright de este documento es propiedad de Camerfirma. No está permitido su reproducción total o parcial ni su uso con otras organizaciones para ningún otro propósito, excepto autorización

Más detalles

Dos de los elementos más importante de cualquier sistema operativo son los archivos y las carpetas.

Dos de los elementos más importante de cualquier sistema operativo son los archivos y las carpetas. Archivos y carpetas Introducción Dos de los elementos más importante de cualquier sistema operativo son los archivos y las carpetas. Los archivos son el componente que permite almacenar prácticamente toda

Más detalles

Tema 2. Casos de Uso C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A B E L

Tema 2. Casos de Uso C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A B E L Tema 2. Casos de Uso C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A B E L É N M E L I Á N BAT I STA J O S É MARCOS M O R E N O

Más detalles

Unified modeling language

Unified modeling language Unified modeling language UML es un lenguaje para la especificación, visualización, construcción y documentación de documentos de sistemas de software. Es independiente del lenguaje de implementación y

Más detalles

Guía de gestión de Servicios de apoyo a la escolarización

Guía de gestión de Servicios de apoyo a la escolarización Guía de gestión de Servicios de apoyo a la escolarización Esta guía describe cómo realizar la gestión de los Servicios de apoyo a la escolarización que participan en el proceso de admisión de alumnos en

Más detalles

Tramitaciones de nuevas instalaciones de combustibles líquidos sin proyecto MANUAL DE USUARIO

Tramitaciones de nuevas instalaciones de combustibles líquidos sin proyecto MANUAL DE USUARIO Tramitaciones de nuevas instalaciones de combustibles líquidos sin proyecto MANUAL DE USUARIO V1 Tramitaciones de nuevas instalaciones de combustibles líquidos sin proyecto MANUAL DE USUARIO Pág. 1 Control

Más detalles

Proyecto de IS3. Tercera iteración. Documento de modelo funcional

Proyecto de IS3. Tercera iteración. Documento de modelo funcional 3 de mayo de 2009 Proyecto de IS3. Tercera iteración 4 de mayo de 2009-2 - Índice Historial...3 Identificación de actores...4 Identificación de casos de uso...5 Descripción de los casos de uso...6 Identificar...6

Más detalles

MODELOS DE KRIPKE. Lógicas para la Informática y la Inteligencia Artificial

MODELOS DE KRIPKE. Lógicas para la Informática y la Inteligencia Artificial enero, 2007 MODELOS DE KRIPKE Lógicas para la Informática y la Inteligencia Artificial Ana de la Viuda López Departamento de Informática y Automática Universidad de Salamanca TABLA DE CONTENIDOS TABLA

Más detalles

Trabajo Práctico 4: Testing Funcional

Trabajo Práctico 4: Testing Funcional Trabajo Práctico 4: Testing Funcional 1) Explique claramente cuáles son los objetivos de la Validación y de la Verificación. Qué técnicas usaría para llevar a cabo cada una de estas actividades? 2) Qué

Más detalles

Guía para contribuyentes AUTORIZACIONES DE PREIMPRESOS Y ESTABLECIMIENTOS GRÁFICOS

Guía para contribuyentes AUTORIZACIONES DE PREIMPRESOS Y ESTABLECIMIENTOS GRÁFICOS Guía para contribuyentes AUTORIZACIONES DE PREIMPRESOS Y ESTABLECIMIENTOS GRÁFICOS Autorizaciones de preimpresos y establecimientos gráficos P á g i n a 1 25 Tabla de Contenido INTRODUCCIÓN... 3 DEFINICIONES

Más detalles

Lenguaje Unificado de Modelado

Lenguaje Unificado de Modelado Lenguaje Unificado de Modelado UML UML es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad. Es un lenguaje gráfico para visualizar, especificar, construir y documentar

Más detalles

GUÍA DE USUARIO GESTOR VIRTUAL ÁREA PRIVADA DE CLIENTES

GUÍA DE USUARIO GESTOR VIRTUAL ÁREA PRIVADA DE CLIENTES GUÍA DE USUARIO GESTOR VIRTUAL ÁREA PRIVADA DE CLIENTES Enero de 2018 Índice 1. / INTRODUCCIÓN 3 2. / INICIO DE SESIÓN 4 3. / GESTOR VIRTUAL 6 3.1 SELECCIÓN PUNTOS DE SUMINISTRO 7 3.2 ENERGÍA CONSUMIDA

Más detalles

Manual de usuario del sistema de reserva de salas

Manual de usuario del sistema de reserva de salas Pontificia Universidad Católica de Chile Manual de usuario del sistema de reserva de salas UCRD - VRA TABLA DE CONTENIDOS 1. INTRODUCCIÓN...1-1 1.1 Propósito...1-1 1.2 Aplicabilidad...1-1 1.3 Documentación

Más detalles

Análisis y Diseño de Sistemas

Análisis y Diseño de Sistemas Análisis y Diseño de Sistemas Dpto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Clase 10 Modelo Dinámico Lic. María Mercedes Vitturini [mvitturi@cs.uns.edu.ar] 1er. CUATRIMESTRE

Más detalles

PRESENTACIÓN TRABAJO FIN DE GRADO

PRESENTACIÓN TRABAJO FIN DE GRADO PRESENTACIÓN TRABAJO FIN DE GRADO SISTEMA DE CONTROL DE DEMANDAS CIUDADANAS 2 º C I C L O D E I N G E N I E R Í A E N I N F O R M Á T I C A Á R E A : I N G E N I E R Í A D E L S O F T W A R E A L U M N

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS 1 Sesión No. 8 Nombre: El Modelo de diseño con UML Contextualización Los modelos que podemos crear con UML son varios, por lo que debemos

Más detalles

MANUAL DE USUARIO PEF REGISTRO DE PROYECTOS CIENCIA Y TECNOLOGIA

MANUAL DE USUARIO PEF REGISTRO DE PROYECTOS CIENCIA Y TECNOLOGIA MANUAL DE USUARIO PEF REGISTRO DE PROYECTOS CIENCIA Y TECNOLOGIA 2017 2017 2 de 21 INTRODUCCIÓN Manual de usuario para el acceso al sistema PEF-Registro de Proyectos de la H. Cámara de Diputados para ciencia

Más detalles

Especificación de Requerimientos <Nombre del Proyecto> Nombre del Grupo de Desarrollo o Asignatura Nombre del Autor

Especificación de Requerimientos <Nombre del Proyecto> Nombre del Grupo de Desarrollo o Asignatura Nombre del Autor Especificación de Requerimientos Nombre del Grupo de Desarrollo o Asignatura [Este documento es la plantilla base para elaborar el documento Especificación de Requerimientos. Los textos que aparecen entre

Más detalles

CuadraTurnos (ios) Manual de usuario. (Guía rápida)

CuadraTurnos (ios) Manual de usuario. (Guía rápida) CuadraTurnos (ios) Manual de usuario (Guía rápida) Contenido 1.- Introducción... 3 2.- Configuración Básica... 4 2.1.- Establecer o modificar un turno en un día... 4 2.2.- Perfiles... 5 2.2.1.- Crear un

Más detalles

MODULO IV. Análisis y Diseño de Sistemas de Información INF-162 IV. UML. Casos de uso. Facilitador: Miguel Cotaña

MODULO IV. Análisis y Diseño de Sistemas de Información INF-162 IV. UML. Casos de uso. Facilitador: Miguel Cotaña MODULO IV Análisis y Diseño de Sistemas de Información INF-162 IV. UML Casos de uso Facilitador: Miguel Cotaña 1 INTRODUCCION Analista de negocios no-it: es alguien que trabaja dentro del contexto del

Más detalles

4/15/2010. Requerimientos de Software UARG.UNPA Requerimientos de Software. Requerimientos de Software

4/15/2010. Requerimientos de Software UARG.UNPA Requerimientos de Software. Requerimientos de Software UARG.UNPA 2009 Un caso de uso es una interacción típica entre un usuario y un sistema computacional.(fowler) Un caso de uso especifica el comportamiento deseado del sistema (objetivos del usuario). (Jacobson)

Más detalles

5.1 FORMATOS PARA EL COORDINADOR Plan de trabajo de la Coordinación

5.1 FORMATOS PARA EL COORDINADOR Plan de trabajo de la Coordinación 5.1 FORMATOS PARA EL COORDINADOR 5.1.1 Plan de trabajo de la Coordinación El modulo para registrar el plan de trabajo es el siguiente: La primera parte del formato contiene información del coordinador

Más detalles

GUIA DE USUARIO DE LA HERRAMIENTA DE ETIQUETADO DEL PROYECTO INNOTHINKING

GUIA DE USUARIO DE LA HERRAMIENTA DE ETIQUETADO DEL PROYECTO INNOTHINKING GUIA DE USUARIO DE LA HERRAMIENTA DE ETIQUETADO DEL PROYECTO INNOTHINKING 0 HOJA DE CONTROL DOCUMENTAL: Nombre del documento: Descripción: Titulo del proyecto: Autor: Cliente: Estado: Guía de usuario de

Más detalles

MODELO DE REQUISITOS

MODELO DE REQUISITOS Capítulo 2 MODELO DE REQUISITOS 2.1 Introducción Un modelo, en el desarrollo de software, define cómo solucionar los problemas que aparecen en el desarrollo de una aplicación. Para desarrollar el software,

Más detalles

CÓMO DARSE DE ALTA EN EL PLANIFICADOR. Para darse de alta en esta aplicación acceda a la página a través de la web de APTE:

CÓMO DARSE DE ALTA EN EL PLANIFICADOR. Para darse de alta en esta aplicación acceda a la página a través de la web de APTE: Manual de usuario 1 Planificador de Encuentros Empresariales Manual de usuario CÓMO DARSE DE ALTA EN EL PLANIFICADOR Para darse de alta en esta aplicación acceda a la página a través de la web de APTE:

Más detalles

Principios de la Tecnología de Objetos

Principios de la Tecnología de Objetos Principios de la Tecnología de Objetos Unified Modeling Language Copyright Copyright (c) 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación

Más detalles

MÓDULOS DE DISEÑO EN INGENIERÍA

MÓDULOS DE DISEÑO EN INGENIERÍA MÓDULOS DE DISEÑO EN INGENIERÍA El diseño de productos tecnológicos (artefactos, procesos, sistemas e infraestructura) está en el centro de la naturaleza de la ingeniería. El diseño en ingeniería es un

Más detalles

. ConSIX Facturación Módulo Contabilidad. Copyright 2017

. ConSIX Facturación Módulo Contabilidad. Copyright 2017 . ConSIX Facturación 17.0 Módulo Contabilidad Copyright 2017 http://www.consix.es Para acceder a las opciones de contabilidad de su programa, tendrá que pulsar en el menú Contabilidad que tendrá en la

Más detalles

CAPÍTULO V: RENDICIÓN DE INGRESOS FICOM

CAPÍTULO V: RENDICIÓN DE INGRESOS FICOM Página 1 de 13 RECURSOS 2017 MANUAL DE USUARIO DE SISTEMA Enero 2018 Página 2 de 13 ÍNDICE Contenido 1. INTRODUCCIÓN... 3 2. ESTRUCTURA DE RENDICION... 3 3. INGRESO AL SISTEMA Y SELECCIÓN DE LIBROS...

Más detalles

INSTITUCIÓN EDUCATIVA LICEO DEPARTAMENTAL ÁREA DE TECNOLOGÍA E INFORMÁTICA

INSTITUCIÓN EDUCATIVA LICEO DEPARTAMENTAL ÁREA DE TECNOLOGÍA E INFORMÁTICA INSTITUCIÓN EDUCATIVA LICEO DEPARTAMENTAL ÁREA DE TECNOLOGÍA E INFORMÁTICA GUÍA DE INFORMÁTICA (Operaciones matemáticas) Profesor: Germán Rodríguez López Año lectivo 2006-2007 1 OPERACIONES MATEMÁTICAS

Más detalles

APLICACIONES MOVILES NATIVAS. Sesión 5: Objetos, mensajes y clases. Abstracción, encapsulamiento, herencia y polimorfismo

APLICACIONES MOVILES NATIVAS. Sesión 5: Objetos, mensajes y clases. Abstracción, encapsulamiento, herencia y polimorfismo APLICACIONES MOVILES NATIVAS Sesión 5: Objetos, mensajes y clases. Abstracción, encapsulamiento, herencia y polimorfismo Contextualización Los lenguajes de programación orientada a objetos tienen varios

Más detalles

Modularización. Bibliografía

Modularización. Bibliografía Modularización Uso de subprogramas Razones válidas para crear un subprograma Cohesión y acoplamiento Pasos para escribir un subprograma El nombre y los parámetros de un subprograma Tipos de datos abstractos

Más detalles

Manual de uso de la aplicación Xperience para empresas

Manual de uso de la aplicación Xperience para empresas Manual de uso de la aplicación Xperience para empresas 1. Cómo darse de alta en Xperience Para acceder a Xperience hay que registrarse como usuario y posteriormente dar de alta a la empresa o empresas.

Más detalles

Manual de Usuario para la inscripción de participantes. Rol: Director IIEE

Manual de Usuario para la inscripción de participantes. Rol: Director IIEE Manual de Usuario para la inscripción de participantes Rol: Director IIEE XV OLIMPIADA NACIONAL ESCOLAR DE MATEMÁTICA ONEM 2018 Índice 1. Introducción... 3 1.1. Glosario... 3 1.1.1. Glosario de términos...

Más detalles

Manual de Capacitación y de Usuario

Manual de Capacitación y de Usuario Manual de Capacitación y de Usuario Módulo: Manual de usuario Establecimientos gráficos Junio-2011 Página 1 de 26 Tabla de Contenido INTRODUCCIÓN... 3 DEFINICIONES GENERALES... 3 ESQUEMA COMÚN PARA LAS

Más detalles

Polimnia. Manual de usuario, versión Erick Castillo Bastias. Versión del software:

Polimnia. Manual de usuario, versión Erick Castillo Bastias. Versión del software: Polimnia Manual de usuario, versión 1.47.2 Erick Castillo Bastias Versión del software: 1.0.0.47 Índice Introducción 3 Resumen........................................ 3 Glosario........................................

Más detalles

PLAN DE TRABAJO PROFESORAL PERFIL PROFESOR

PLAN DE TRABAJO PROFESORAL PERFIL PROFESOR PLAN DE TRABAJO PROFESORAL PERFIL PROFESOR TABLA DE CONTENIDO INGRESO AL SISTEMA... 2 REGISTRO DE ACTIVIDADES... 3 Registrar un horario para una o varias semanas.... 9 Registrar varios horarios en un mismo

Más detalles

Manual de usuario. Guía de uso

Manual de usuario. Guía de uso Manual de usuario Guía de uso Tabla de contenido 1. Introducción... 4 1.1. Qué consigue insuit?... 4 2. Primeros pasos... 5 2.1. Pestaña de activación de insuit... 5 2.2. Configuración del servicio...

Más detalles

MANUAL DEL SUBSISTEMA DE EVALUACIÓN DE DESEMPEÑO EN RHNET (SERVIDOR PÚBLICO)

MANUAL DEL SUBSISTEMA DE EVALUACIÓN DE DESEMPEÑO EN RHNET (SERVIDOR PÚBLICO) MANUAL DEL SUBSISTEMA DE EVALUACIÓN DE DESEMPEÑO EN RHNET (SERVIDOR PÚBLICO) ÍNDICE 1 1. Subsistema de Evaluación del Desempeño.... 4 1.1 Objetivos... 4 2 2. Rol Titular de Unidad Responsable... 4 2.1

Más detalles

Diagramas UML JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING

Diagramas UML JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Diagramas UML JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Objetivos Comprender la importancia del modelado y el uso de diagramas para la Ingeniería y la arquitectura. Conocer las ventajas que

Más detalles

Elaboración de Documentos en Procesadores de Textos

Elaboración de Documentos en Procesadores de Textos Las tablas permiten organizar la información en filas y columnas, de forma que se pueden realizar operaciones y tratamientos sobre las filas y columnas. Por ejemplo, obtener el valor medio de los datos

Más detalles

UML. (Unified Modeling Language) Lenguage Unificado de Modelado

UML. (Unified Modeling Language) Lenguage Unificado de Modelado 1 (Unified Modeling Language) Lenguage Unificado de Modelado Antonio J. Sierra 1 Índice Historia Introducción Objetivos del modelo Críticas Modelo Conceptual de Clases Diagrama de Clases 2 2 Historia (I)

Más detalles

CLASE 3: UML DIAGRAMAS CASOS DE USO. Universidad Simón Bolívar. Ingeniería de Software. Prof. Ivette Martínez

CLASE 3: UML DIAGRAMAS CASOS DE USO. Universidad Simón Bolívar. Ingeniería de Software. Prof. Ivette Martínez CLASE 3: UML DIAGRAMAS CASOS DE USO Universidad Simón Bolívar. Ingeniería de Software. Prof. Ivette Martínez UML UML es un lenguaje para especificar, visualizar, construir y documentar los artefactos de

Más detalles