Top Banner
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
26

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.

Jan 27, 2016

Download

Documents

Salomón Cubero
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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 Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.

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