260 likes | 407 Views
Left Case : Int Case v1.0 Roberto Galache García. Tutores: Francisco José García Peñalvo Iván Álvarez Navia. Departamento de Informática y Automática. Universidad de Salamanca. Índice. Introducción Objetivos Conceptos teóricos Técnicas y herramientas
E N D
Left Case: Int Case v1.0Roberto Galache García Tutores: Francisco José García Peñalvo Iván Álvarez Navia Departamento de Informática y Automática Universidad de Salamanca
Índice • Introducción • Objetivos • Conceptos teóricos • Técnicas y herramientas • Aspectos relevantes del desarrollo • Demostración • Conclusiones • Trabajo futuro Left Case: INT CASE v1.0
Introducció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 Left Case: INT CASE v1.0
Introducció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 Left Case: INT CASE v1.0
Objetivos Objetivos de Left Case • 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 Left Case: INT CASE v1.0
Objetivos Objetivos de Int Case • Integración en Left Case (Transparente) • Edición de diagramas de Interacción • Diagramas de Secuencia • Diagramas de Colaboración • Impresión de diagramas Left Case: INT CASE v1.0
Conceptos teóricos Diagrama de Interacción • Modelo dinámico del sistema • Representa “cómo” se comunican los objetos • Se limita a un determinado contexto: Escenario, Subsistema,… Left Case: INT CASE v1.0
Conceptos teóricos Diagrama de Secuencia • 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 Left Case: INT CASE v1.0
Conceptos teóricos Diagrama de Colaboración • 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 Left Case: INT CASE v1.0
Técnicas y herramientas Metodologías empleadas • 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 Left Case: INT CASE v1.0
Técnicas y herramientas Otras técnicas • GNOME • GLIB • GTK+ y GDK • CORBA: Bonobo • Lenguajes para la representación de información • SGML • XML • XSL Left Case: INT CASE v1.0
Técnicas y herramientas GLIB • Biblioteca escrita en C • Permite el manejos de TAD’s • Tipos independientes de la plataforma • Favorece la portabilidad Left Case: INT CASE v1.0
Técnicas y herramientas GTK+ • GIMP Toolkit • Biblioteca orientada a objetos escrita en C • Motor de Interfaz Gráfica de usuario Left Case: INT CASE v1.0
Técnicas y herramientas CORBA Y BONOBO • CORBA = Interfaz estándar para la comunicación de elementos heterogéneos • BONOBO = Sistema de componentes, basado en CORBA, bajo GNOME Left Case: INT CASE v1.0
Técnicas y herramientas Arquitectura de componentes Left Case: INT CASE v1.0
Aspectos relevantes del desarrollo Introducción • 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 Left Case: INT CASE v1.0
Aspectos relevantes del desarrollo Ciclo de vida • Modelo en “espiral” • Fases • Planificación • Análisis de riesgos • Ingeniería • Evaluación • Uso de prototipos evolutivos Left Case: INT CASE v1.0
Aspectos relevantes del desarrollo Diagrama conceptual de clases Left Case: INT CASE v1.0
Aspectos relevantes del desarrollo Diagrama de clases de los elementos Left Case: INT CASE v1.0
Aspectos relevantes del desarrollo Utilización del lenguaje C como LPOO • 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. Left Case: INT CASE v1.0
Aspectos relevantes del desarrollo Problemas en la implementación • Motor gráfico : GDK vs GnomeCanvas • “Amplia” documentación sobre GDK • Problemas de estabilidad de GnomeCanvas • Las Capacidades gráficas de GDK son suficientes Left Case: INT CASE v1.0
Aspectos relevantes del desarrollo Problemas en la implementación • Puntos de Unió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; } Left Case: INT CASE v1.0
Aspectos relevantes del desarrollo • Gestión de la profundidad for(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 Left Case: INT CASE v1.0
Demostración Left Case: INT CASE v1.0
Conclusiones • 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 Left Case: INT CASE v1.0
Trabajo 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 Left Case: INT CASE v1.0