View
9
Download
0
Category
Preview:
Citation preview
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
Í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
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
Introducción (2)
• Datalog en Wikipedia
SISTEMAS INFORMÁTICOS 2010/20114
ACIDE – A Configurable IDE 0.8
Javier Salcedo Gómez
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
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
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
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
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
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
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
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
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
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/>. */
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
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
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
Estructura de paquetes
SISTEMAS INFORMÁTICOS 2010/201118
ACIDE – A Configurable IDE 0.8
Javier Salcedo Gómez
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
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
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
Refactorización del Editor de Archivos(4)ACIDE – A Configurable IDE 0.8
SISTEMAS INFORMÁTICOS 2010/2011 Javier Salcedo Gómez22
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
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
Refactorización del Menú(3)ACIDE – A Configurable IDE 0.8
SISTEMAS INFORMÁTICOS 2010/201125
Javier Salcedo Gómez
Gestor del Espacio de TrabajoACIDE – A Configurable IDE 0.8
SISTEMAS INFORMÁTICOS 2010/201126
Javier Salcedo Gómez
Configuraciones léxicasACIDE – A Configurable IDE 0.8
SISTEMAS INFORMÁTICOS 2010/201127
Javier Salcedo Gómez
Léxicos por defectoACIDE – A Configurable IDE 0.8
SISTEMAS INFORMÁTICOS 2010/201128
Javier Salcedo Gómez
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
Configuración de la BHACIDE – A Configurable IDE 0.8
SISTEMAS INFORMÁTICOS 2010/201130
Javier Salcedo Gómez
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
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
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
Turno de preguntas
SISTEMAS INFORMÁTICOS 2010/201134
ACIDE – A Configurable IDE 0.8
Javier Salcedo Gómez
Recommended