34
Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID SISTEMAS INFORMÁTICOS 2010/2011 DES GUI Front-end Versión 0.8

Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Embed Size (px)

Citation preview

Page 1: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Desarrollado por: Javier Salcedo Gómez

Dirigido por: Prof. Fernando Sáenz Pérez

Dpto. Ingeniería del Software e Inteligencia Artificial

FACULTAD DE INFORMÁTICA

UNIVERSIDAD COMPLUTENSE DE MADRID

SISTEMAS INFORMÁTICOS 2010/2011

DES GUI Front-end

Versión 0.8

Page 2: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Índice de contenidos

• Introducción• Versión 0.7 y anteriores• Objetivos cumplidos• Objetivos no cumplidos• Posibles mejoras• Conclusión

SISTEMAS INFORMÁTICOS 2010/20112

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 3: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Introducción (1)

• DES (Datalog Educational System)– Bases de datos deductivas basadas en Prolog– Portable– Datalog + SQL– http://des.sourceforge.net

SISTEMAS INFORMÁTICOS 2010/20113

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 4: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Introducción (2)

• Datalog en Wikipedia

SISTEMAS INFORMÁTICOS 2010/20114

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 5: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Introducción (3)

• Entorno de desarrollo integrado (IDE) para la edición, compilación y ejecución de proyectos

• Desarrollado en JAVA 1.6– Multiplataforma

• Configurable– Gestión de proyectos– Barra de menús– Barra de herramientas– Editor de archivos– Panel de consola– Configuraciones léxicas e idioma

SISTEMAS INFORMÁTICOS 2010/20115

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 6: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Introducción (4)

• Relevancia del proyecto– http://acide.sourceforge.net

SISTEMAS INFORMÁTICOS 2010/20116

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 7: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Introducción (5)

SISTEMAS INFORMÁTICOS 2010/20117

Panel del explorador

Panel de la consola

Panel del editor de archivos

Panel de la barra de herramientas

Panel de la barra de estado

Barra de menús

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 8: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Versión 0.7 y anteriores

• Poco amigable visualmente– Falta de iconos en menús– Falta de logotipo

• Código fuente totalmente descuidado– Español e Inglés– Sin comentarios ni Javadoc– Sin licencia GPLv3– No optimizado Duplicación de Código

• Aplicación estable y funcional

SISTEMAS INFORMÁTICOS 2010/20118

¿Código abierto?

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 9: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Objetivos Cumplidos

• Mejoras en el aspecto gráfico• Estandarización del código fuente

– Estructura de paquetes

• Refactorización del código fuente– Editor de archivos– Barra de menús

• Solución de errores existentes• Adición de nuevas funcionalidades

– Gestor del espacio de trabajo (AcideWorkbenchManager)– Configuraciones léxicas por defecto– Configuraciones de barra de herramientas y léxicas

SISTEMAS INFORMÁTICOS 2010/20119

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 10: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Mejoras en el aspecto gráfico (1)

• Adición de iconos– Barra de menús– Menús contextuales en la aplicación

• Creación de un logotipo para la aplicación

SISTEMAS INFORMÁTICOS 2010/201110

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

SplashScreen

Menú Edición

Page 11: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Mejoras en el aspecto gráfico (2)

• Sustitución de iconos existentes por nuevos iconos más actuales– Panel del explorador de proyectos– Editor de archivos

– Barra de herramientas

SISTEMAS INFORMÁTICOS 2010/201111

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Barra de Herramientas con Scroll

Panel del explorador

Archivo Principal

Archivo CompilableArchivo Modificado

Archivo No Modificado

Page 12: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Mejoras en el aspecto gráfico (3)

• Icono para las ventanas de la aplicación• Unificación de formatos para las ventanas de

configuración de la aplicación

SISTEMAS INFORMÁTICOS 2010/201112

Panel principal

Panel de botones

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 13: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Mejoras en el aspecto gráfico (4)

• Barra de estado– JTextField JPanel

SISTEMAS INFORMÁTICOS 2010/201113

Mensaje de estado

Mensaje de configuración sintáctica

Mensaje de configuración léxica

Mensaje de columna/línea Reloj

Mensaje de modo de escritura

Mensaje de bloqueo de mayúsculas (1)

Mensaje de bloqueo de teclado numérico (2)

Mensaje de bloqueo de Scroll (3)

(1) (2) (3)

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 14: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Estandarización del código fuente (1)

• Licencia GPLv3 en cada clase del código fuente

SISTEMAS INFORMÁTICOS 2010/201114

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

/* * ACIDE - A Configurable IDE * Official web site: http://acide.sourceforge.net * * Copyright (C) 2007-2011 * * Authors: * - Fernando Sáenz Pérez (Team Director). * - Version from 0.1 to 0.6: * - Diego Cardiel Freire. * - Juan José Ortiz Sánchez. * - Delfín Rupérez Cañas. * - Version 0.7: * - Miguel Martín Lázaro. * - Version 0.8: * - Javier Salcedo Gómez * * This program is free software: you can redistribute * it and/or modify it under the terms of the GNU General Public * License as published by the Free Software Foundation, * either version 3 of the License, or (at your option) any

* later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/>. */

Page 15: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Estandarización del código fuente (2)

• Inglés• Comentarios Javadoc, simples y multilínea• private int _count;• Public class AcideWorkbenchManager{…}• int getCount(){…}• private String SHOW_CONSOLE_PANEL_NAME;• private JButton _acceptButton;

SISTEMAS INFORMÁTICOS 2010/2011

15

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 16: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Estandarización del código fuente (3)

• Ventanas de configuración// Crea y configura los componentes de la ventanaprivate void initComponents()...// Añade los componentes a la ventanaprivate void addComponents()...// Establece el título, tamaño, muestra la ventana, etc.private void setWindowConfiguration...// Establece los listeners para los componentes de la

ventana.private void setListeners()...// Cierra la ventana.private void closeWindow()...

SISTEMAS INFORMÁTICOS 2010/201116

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 17: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Estandarización del código fuente (4)

• Barra de menús y menús contextuales// Crea y configura los componentes del menúprivate void buildComponents()...// Añade los componentes al menúprivate void addComponents()...// Establece el texto y los atajos de las opciones del

menú.private void setTextOfMenuComponents...// Establece la visibilidad o invisibilidad de los

componentes del menú.private void updateComponentsVisibility()...// Establece los listeners para los componentes de la

ventana.private void setListeners()...

SISTEMAS INFORMÁTICOS 2010/201117

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 18: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Estructura de paquetes

SISTEMAS INFORMÁTICOS 2010/201118

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 19: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Refactorización del Editor de Archivos(1)

SISTEMAS INFORMÁTICOS 2010/201119

Panel separador

Vista 1

Vista 2

Líneas

Panel de pestañas

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 20: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Refactorización del Editor de Archivos(2)

• Anteriormente– Dos vistas del documento Dos clases idénticas– Una clase para el control del TabbedPane

CreadorEditor– Una clase que contenía las dos vistas (clases

idénticas) Editor

SISTEMAS INFORMÁTICOS 2010/2011 Javier Salcedo Gómez20

ACIDE – A Configurable IDE 0.8

Page 21: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Refactorización del Editor de Archivos(3)

• Ahora– Una clase para el control del TabbedPane

AcideFileEditorManager– Una clase global para las dos vistas del documento

AcideFileEditorPanel– Una clase especializada para la zona de edición de texto

AcideFileEditorTextEditionArea• AcideTextPane

– Modo inserción/sobreescritura (Insert/Overwrite)– Sangrado automático (Automatic Indent)– Ajuste de línea (Line wrapping)

ACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/2011 Javier Salcedo Gómez21

Page 22: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Refactorización del Editor de Archivos(4)ACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/2011 Javier Salcedo Gómez22

Page 23: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Refactorización del Menú(1)

• Anteriormente– Una única clase

• Opciones de menú• Listeners

– Configuración basada en array estático• ¿Fácilmente ampliable?

– Aplicación de la configuración• Opciones añadidas y no añadidas al menú Ventana

de configuración generada manualmente

ACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/201123

Javier Salcedo Gómez

Page 24: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Refactorización del Menú(2)

• Ahora– Una clase por menú– Cada listener en una clase separada– Configuración basada en array dinámico

• Fácilmente ampliable

– Aplicación de la configuración• Opciones ocultadas o mostradas en el menú Ventana

de configuración generada automáticamente

ACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/201124

Javier Salcedo Gómez

Page 25: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Refactorización del Menú(3)ACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/201125

Javier Salcedo Gómez

Page 26: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Gestor del Espacio de TrabajoACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/201126

Javier Salcedo Gómez

Page 27: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Configuraciones léxicasACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/201127

Javier Salcedo Gómez

Page 28: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Léxicos por defectoACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/201128

Javier Salcedo Gómez

Page 29: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Configuración de la presentación

• Efecto Zoom Ctrl+Rueda ratón

ACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/201129

Javier Salcedo Gómez

Page 30: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Configuración de la BHACIDE – A Configurable IDE 0.8

SISTEMAS INFORMÁTICOS 2010/201130

Javier Salcedo Gómez

Page 31: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Objetivos no cumplidos

• Interfaz para DES estilo Microsoft Access• Definición y aplicación de análisis sintáctico sobre los archivos

abiertos en el editor de archivos• Barra de menús totalmente parametrizable• Gestión optimizada de hilos en:

– Apertura de ficheros– Aplicación de configuraciones léxicas

• Refactorización de la ventana de Búsquedas/Reemplazos– Opción de Respetar Mayúsculas/Minúsculas en reemplazos

SISTEMAS INFORMÁTICOS 2010/201131

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 32: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Posibles mejoras

• Gestor de Excepciones• Ventana de ayuda de la aplicación con índice de

contenidos• Abrir archivos usando ACIDE como editor por

defecto en el SO• Permitir Drag and Drop de archivo sobre ACIDE• Macros de comandos

• … Infinitas posibilidades

SISTEMAS INFORMÁTICOS 2010/201132

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 33: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Conclusión

• Muchos problemas para conseguir versión estable y distribuible– Erasmus – Diez meses

• Technische Universiteit Eindhoven

– Grupo unitario Único punto de vista– Comunicación por e-mail con supervisor

• Rediseño total de un proyecto + mejoras añadidas + corrección de errores

• Versión estable y distribuible• Código fuente estandarizado en Inglés

SISTEMAS INFORMÁTICOS 2010/201133

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez

Page 34: Desarrollado por: Javier Salcedo Gómez Dirigido por: Prof. Fernando Sáenz Pérez Dpto. Ingeniería del Software e Inteligencia Artificial F ACULTAD DE I

Turno de preguntas

SISTEMAS INFORMÁTICOS 2010/201134

ACIDE – A Configurable IDE 0.8

Javier Salcedo Gómez