Left Case : Int Case v1.0 Roberto Galache García

26
Left Case Left Case : Int Case v1.0 : Int Case v1.0 Roberto Galache García Roberto Galache García Tutores: Tutores: Francisco José García Francisco José García Peñalvo Peñalvo Iván Álvarez Navia Iván Álvarez Navia Universidad de Salamanca Departamento de Informática y Automática

description

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 - PowerPoint PPT Presentation

Transcript of Left Case : Int Case v1.0 Roberto Galache García

Page 1: Left Case : Int Case v1.0 Roberto Galache García

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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