![Page 1: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/1.jpg)
Left CaseLeft Case: Int Case v1.0: Int Case v1.0Roberto Galache GarcíaRoberto Galache García
Tutores:Tutores: Francisco José García PeñalvoFrancisco José García Peñalvo
Iván Álvarez NaviaIván Álvarez Navia
Universidad de Salamanca
Departamento de Informática y Automática
![Page 2: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/2.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 22
ÍndiceÍndice
1. Introducción2. Objetivos3. Conceptos teóricos4. Técnicas y herramientas5. Aspectos relevantes del desarrollo6. Demostración7. Conclusiones8. Trabajo futuro
![Page 3: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/3.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 33
IntroducciónIntroducción
• Objetivos de la Ingeniería del Software
– Desarrollo de software de calidad y económico
– Disminución en el tiempo de desarrollo
• Caminos: entornos RAD, herramientas CASE, etc.
• Las herramientas CASE son costosas y no están al
alcance de cualquiera
• Left Case es un entorno CASE bajo licencia GPL
![Page 4: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/4.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 44
IntroducciónIntroducción
• Left Case agrupa distintos componentes que permiten la edición de diagramas– DFD (Diagramas de flujo de datos)– DTD (Diagramas de transición de estados)– DER (Diagramas entidad/relación)– Diagramas de clases UML– Diagramas de Casos de Uso– Diagramas de transición de estados (bajo UML)
• Int Case es un nuevo componente– Es un entorno CASE frontal– Permite la edición de diagramas de Interacción
![Page 5: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/5.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 55
ObjetivosObjetivos
• Creación de un entorno CASE para la edición de diagramas bajo distintos paradigmas– Estructurado
– Objetual
• Generación automática de documentación técnica de análisis y diseño
• Formato de almacenamiento estándar y portable: XML
Objetivos de Left Case
![Page 6: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/6.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 66
ObjetivosObjetivos
• Integración en Left Case (Transparente)
• Edición de diagramas de Interacción– Diagramas de Secuencia– Diagramas de Colaboración
• Impresión de diagramas
Objetivos de Int Case
![Page 7: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/7.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 77
Conceptos teóricosConceptos teóricos
• Modelo dinámico del sistema
• Representa “cómo” se comunican los objetos
• Se limita a un determinado contexto: Escenario, Subsistema,…
Diagrama de Interacción
![Page 8: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/8.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 88
Conceptos teóricosConceptos teóricos
• Tipo especial de diagrama de Interacción
• Se centra en la ordenación temporal de los mensajes
• Informa sobre la evolución del sistema respecto al tiempo
Diagrama de Secuencia
![Page 9: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/9.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 99
Conceptos teóricosConceptos teóricos
• Tipo especial de diagrama de Interacción
• Se centra en la organización de los objetos que se comunican
• Aporta una visión estructural del Sistema
Diagrama de Colaboración
![Page 10: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/10.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1010
Técnicas y herramientasTécnicas y herramientas
• Metodología orientada a objetos OMT
• Complementada con
– Plantillas de Durán y Bernárdez
– Diagramas UML
• Diagramas de Clases
• Diagramas de Casos de Uso
• Diagramas de Secuencia
Metodologías empleadas
![Page 11: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/11.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1111
Técnicas y herramientasTécnicas y herramientas
• GNOME
– GLIB
– GTK+ y GDK
– CORBA: Bonobo
• Lenguajes para la representación de información
– SGML
– XML
– XSL
Otras técnicas
![Page 12: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/12.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1212
Técnicas y herramientasTécnicas y herramientas
• Biblioteca escrita en C
• Permite el manejos de TAD’s
• Tipos independientes de la plataforma
• Favorece la portabilidad
GLIB
![Page 13: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/13.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1313
Técnicas y herramientasTécnicas y herramientas
• GIMP Toolkit
• Biblioteca orientada a objetos escrita
en C
• Motor de Interfaz Gráfica de usuario
GTK+
![Page 14: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/14.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1414
Técnicas y herramientasTécnicas y herramientas
• CORBA = Interfaz estándar para la
comunicación de elementos
heterogéneos
• BONOBO = Sistema de componentes,
basado en CORBA, bajo GNOME
CORBA Y BONOBO
![Page 15: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/15.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1515
Técnicas y herramientasTécnicas y herramientas
Arquitectura de componentes
![Page 16: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/16.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1616
Aspectos relevantes del desarrolloAspectos relevantes del desarrollo
• Ciclo de vida
• Diagrama conceptual de clases
• Diseño basado en una arquitectura de componentes
• Utilización del lenguaje C como LPOO
• Problemas en la implementación
Introducción
![Page 17: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/17.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1717
Aspectos relevantes del desarrolloAspectos relevantes del desarrollo
• Modelo en “espiral”
• Fases
– Planificación
– Análisis de riesgos
– Ingeniería
– Evaluación
• Uso de prototipos evolutivos
Ciclo de vida
![Page 18: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/18.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1818
Aspectos relevantes del desarrolloAspectos relevantes del desarrollo
Diagrama conceptual de clases
![Page 19: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/19.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 1919
Aspectos relevantes del desarrolloAspectos relevantes del desarrollo
Diagrama de clases de los elementos
![Page 20: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/20.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 2020
Aspectos relevantes del desarrolloAspectos relevantes del desarrollo
• Mecanismos de emulación
– Objetos: punteros a estructuras
– Clases: los métodos son punteros a funciones; atributos
públicos
– Herencia simple y múltiple
– Polimorfismo no soportado
– Manejo de excepciones no soportado por C
– etc.
Utilización del lenguaje C como LPOO
![Page 21: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/21.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 2121
Aspectos relevantes del desarrolloAspectos relevantes del desarrollo
• Motor gráfico : GDK vs GnomeCanvas
– “Amplia” documentación sobre GDK
– Problemas de estabilidad de GnomeCanvas
– Las Capacidades gráficas de GDK son
suficientes
Problemas en la implementación
![Page 22: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/22.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 2222
Aspectos relevantes del desarrolloAspectos relevantes del desarrollo
• Puntos de Unión
Problemas en la implementación
/* Obtener punto de unión */
for(i=0;i<=100;i++){
pto1.x=rect.x;pto1.y=rect.y+rect.height*i/100;pto2.x = rect.x + rect.width;
pto2.y = rect.y+rect.height*i/100;if(menor_distancia(*pto,pto1,pto2)==2) pto_union
= pto1;if(menor_distancia(*pto,pto_union,pto4)==2)
pto_union = pto2;}
![Page 23: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/23.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 2323
Aspectos relevantes del desarrolloAspectos relevantes del desarrollo
• Gestión de la profundidadfor(z=0;z<5;z++){for(n=0;1;n++){instancia = diagrama_get_instancia_n(diagrama,n);if(!instancia) break;if(instancia_get_z(instancia)==z)instancia_dibujar(instancia,gc,pixmap);}
}
Problemas en la implementación
![Page 24: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/24.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 2424
DemostraciónDemostración
![Page 25: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/25.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 2525
ConclusionesConclusiones
• Obtención de los requisitos propuestos inicialmente• Integración del componente dentro del entorno de
Left Case• Resultado: Int Case v1.0
– Herramienta CASE – Edición de diagramas
• Diagramas de Secuencia• Diagramas de Colaboración
– Portabilidad
• Disponible en http://zarza.usal.es
![Page 26: Left Case : Int Case v1.0 Roberto Galache García](https://reader033.vdocuments.mx/reader033/viewer/2022061612/56814c46550346895db94a66/html5/thumbnails/26.jpg)
Left Case: INT CASE v1.0Left Case: INT CASE v1.0 2626
Trabajo futuroTrabajo futuro
• Ampliar la funcionalidad del componente Int Case
• Creación de nuevas hojas de estilo para los informes
• Soporte de un mayor número de formatos en la generación de informes
• Migración a GNOME 2.0
• Soporte para el trabajo colaborativo