Left Case: Int Case v1.0 Roberto Galache García Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia Universidad de SalamancaDepartamento de Informática y Automática
Left Case: INT CASE v1.02 Índice 1.Introducción 2.Objetivos 3.Conceptos teóricos 4.Técnicas y herramientas 5.Aspectos relevantes del desarrollo 6.Demostración 7.Conclusiones 8.Trabajo futuro
Left Case: INT CASE v1.03 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.04 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.05 Objetivos 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
Left Case: INT CASE v1.06 Objetivos 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
Left Case: INT CASE v1.07 Conceptos 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
Left Case: INT CASE v1.08 Conceptos 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
Left Case: INT CASE v1.09 Conceptos 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
Left Case: INT CASE v1.010 Té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
Left Case: INT CASE v1.011 Técnicas y herramientas GNOME –GLIB –GTK+ y GDK –CORBA: Bonobo Lenguajes para la representación de información –SGML –XML –XSL Otras técnicas
Left Case: INT CASE v1.012 Técnicas y herramientas Biblioteca escrita en C Permite el manejos de TAD’s Tipos independientes de la plataforma Favorece la portabilidad GLIB
Left Case: INT CASE v1.013 Técnicas y herramientas GIMP Toolkit Biblioteca orientada a objetos escrita en C Motor de Interfaz Gráfica de usuario GTK+
Left Case: INT CASE v1.014 Té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
Left Case: INT CASE v1.015 Técnicas y herramientas Arquitectura de componentes
Left Case: INT CASE v1.016 Aspectos 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
Left Case: INT CASE v1.017 Aspectos relevantes del desarrollo Modelo en “espiral” Fases –Planificación –Análisis de riesgos –Ingeniería –Evaluación Uso de prototipos evolutivos Ciclo de vida
Left Case: INT CASE v1.018 Aspectos relevantes del desarrollo Diagrama conceptual de clases
Left Case: INT CASE v1.019 Aspectos relevantes del desarrollo Diagrama de clases de los elementos
Left Case: INT CASE v1.020 Aspectos 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
Left Case: INT CASE v1.021 Aspectos 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
Left Case: INT CASE v1.022 Aspectos 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; }
Left Case: INT CASE v1.023 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.024 Demostración
Left Case: INT CASE v1.025 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
Left Case: INT CASE v1.026 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