tesis modelado visual de aplicaciones lotus domino
DESCRIPTION
Tesis de Maestría en Tecnologías de la Información con un fuerte acento en la Ingeniería de Software. Esta tesis atiende a la necesidad de contar con herramientas de modelado visual, implementando para ello, un lenguaje de dominio específico para el modelado de aplicaciones colaborativas desarrolladas sobre la plataforma Lotus Domino Notes de IBM.TRANSCRIPT
Modelado visual de aplicaciones Domino
Hiriam Eduardo Pérez Vidal
Tesis para obtener el grado de
Maestría en Tecnologías de Información
Antecedentes
• Los equipos de desarrollo en aplicaciones Lotus Notes carecen de un lenguaje de modelado adecuado a la naturaleza de esta tecnología
• Lotus Notes es una tecnología que difiere de la programación orientada a objetos y del modelo tradicional de bases de datos relacionales
• Algunos equipos han implementado procesos de desarrollo software a la medida
• Carencia de un lenguaje de modelado que permita definir con mayor precisión las características propias de una aplicación de este dominio tecnológico
Modelado visual de aplicaciones Domino
Modelado visual de aplicaciones Domino
Modelos no estandarizados con poca semántica visual
Problema
• Gran cantidad de aplicaciones colaborativas y portales desarrollados e instalados en la plataforma Lotus Notes / Domino
• Carencia de un modelado formal o completo por la ausencia de técnicas específicas para esta tecnología
• Estos problemas de diseño provocan:• Dificultad en el mantenimiento de las aplicaciones
• Defectos en el software que pueden evitarse al detectarse durante el modelado
• Duplicidad de esfuerzos al no poder reutilizarse soluciones pararequerimientos similares
Modelado visual de aplicaciones Domino
El problema en la etapa de diseño de las aplicaciones Lotus Notes se basa en la ausencia de un lenguaje de modelado específico para esta plataforma
y una herramienta de diseño que lo implemente
Objetivos
Analizar, diseñar, e implementar una herramienta de modelado visual, que permita diseñar aplicaciones Lotus Notes / Domino y generar el código de la aplicación correspondiente utilizando un lenguaje de modelado de dominio específico
Modelado visual de aplicaciones Domino
• Herramientas para generación de código
• DSL para Lotus usando perfiles de UML
• Desarrollar un modelador
• Desarrollar un generador de código
Justificación
Mejorar la calidad de las aplicaciones en el diseño antes de su comercialización con los altos costos asociados
Modelado visual de aplicaciones Domino
• 14.5 millones de licencias vendidas (2009)
• Mas del 50% de las 100 empresas fortune (2009)
• 1 millón de aplicaciones Lotus Notes existentes
• 500,000 desarrolladores Lotus (2004)
• 12000 nuevas empresas (2008)
Actualmente no existe una herramienta de modelado específico para esta tecnología o dominio por lo que esta investigación y desarrollo es
innovadora en este terreno
Hipótesis
Modelado visual de aplicaciones Domino
Contar con una herramienta de modelado de dominio específico permitirá facilitar el modelado de las aplicaciones Lotus Notes y
disminuir el tiempo de desarrollo
Facilidad de modelado Disminución de tiempo de desarrollo
Metodología
Modelado visual de aplicaciones Domino
Investigación
Técnicas, herramientas, y soluciones para la definición de una herramienta de modelado visual mediante un estándar formal de especificación de lenguajes
Desarrollo
Obtención de una herramienta de software que implemente el resultado de la investigación siguiendo un proceso formal de desarrollo de software
Con esta herramienta se implementa el resultado de la investigación en un producto tangible
Lotus Notes / Domino
Modelado visual de aplicaciones Domino
Seguridad
Al tratarse de un entorno de desarrollo RAD y su base de datos diferente al modelo entidad‐relación tradicional, el modelado tradicional de aplicaciones usando lenguajes de propósito general como el UML, puede ser complicado y difícilmente estandarizado.
Diseño de SoftwareDiseño de Software
Arquitectura Dirigida por Modelos
Arquitectura Dirigida por Modelos
Modelado de Dominio Específico (DSM)
Lenguajes de modelado visual
Lenguajes de modelado visual
De Dominio Específico (DSL)
De Dominio Específico (DSL)
De Propósito General
De Propósito General
ModelosModelos
ModeladorModelador
Generador automático de
código
Generador automático de
código
AplicaciónAplicación
Conducido por enfoques
Se apoya en
La herramienta se compone de
Representa aplicaciones a través de
Emplean Herramientas de modeladoHerramientas de modelado
MetaEditMetaEdit
MS DSL ToolkitMS DSL Toolkit
EclipseEclipse
Se elaboran usando
Soportan
Perfiles de UML
Perfiles de UML
Metamodelo ecore
Metamodelo ecore
Lenguajes propietariosLenguajes propietarios
Se describen con
Modelado visual de aplicaciones Domino
Modelado visual de aplicaciones Domino
DSL (Domain Specific Language)Es un lenguaje que permite a través de notaciones apropiadas y abstracciones, expresar un dominio de problemas específico
Modelado visual de aplicaciones Domino
Beneficios de un DSL:
o Mejor semántica de los modeloso Software que cumple mejor con requerimientos de negocioo Mejora en la calidad del softwareo Ahorro de tiempoo Aumento en la productividad, lectura,mantenimiento y portabilidad
Selección de la herramienta
Modelado visual de aplicaciones Domino
Tiempo de desarrollo
• MetaEdit+• MS DSL Toolkit• Enterprise Architect• Wepshere App Dev
Fases para obtener un DSM
Modelado visual de aplicaciones Domino
Validación del DSL (Domain Specific Language)
Análisis de dominio
Definición de Metamodelo
Especificación del DSL (Domain Specific Language)
Definición del Lenguaje visual de modelado
Validación del DSL (Domain Specific Language)
Análisis de dominio
Definición de Metamodelo
Especificación del DSL (Domain Specific Language)
Definición del Lenguaje visual de modelado
Análisis de dominio
Definición de Metamodelo
Especificación del DSL (Domain Specific Language)
Definición del Lenguaje visual de modeladoDefinición del Lenguaje visual de modelado
Definición del modelo de dominio
Definición gráfica
Definición de herramientas visuales
Mapeo de modelos
Implementación de la herramienta
Generación automática de código
Desarrollo de herramienta de modelado
Definición del modelo de dominio
Definición gráfica
Definición de herramientas visuales
Mapeo de modelos
Implementación de la herramienta
Generación automática de código
Desarrollo de herramienta de modeladoDesarrollo de herramienta de modelado
15
Clasificación de elementos de diseño
Análisis de dominio
Modelado visual de aplicaciones Domino
16
Definición del metamodelo
Modelado visual de aplicaciones Domino
17
Clasificación de los estereotipos
La definición completa se encuentra en perfil de UML
Especificación del DSL
Modelado visual de aplicaciones Domino
18
Validación del DSL
Modelado visual de aplicaciones Domino
Se siguió un proceso formal de desarrollo de SW
19
Desarrollo de la herramienta DSM
Modelado visual de aplicaciones Domino
20
Casos de uso
Requerimientos
Modelado visual de aplicaciones Domino
21
Diseño de arquitectura
Modelado visual de aplicaciones Domino
22
Proceso de creación de la herramienta gráfica basada en modelos
Codificación
Modelado visual de aplicaciones Domino
23
Codificación
Modelado visual de aplicaciones Domino
24
<eClassifiers xsi:type="ecore:EClass" name="Database"eSuperTypes="#//Element"><eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataTypehttp://www.Eclipse.org/emf/2002/Ecore#//EString"/><eStructuralFeatures xsi:type="ecore:EAttribute" name="server" eType="ecore:EDataTypehttp://www.Eclipse.org/emf/2002/Ecore#//EString"/><eStructuralFeatures xsi:type="ecore:EAttribute" name="fileName" eType="ecore:EDataTypehttp://www.Eclipse.org/emf/2002/Ecore#//EString"/><eStructuralFeatures xsi:type="ecore:EAttribute" name="replication" eType="ecore:EDataTypehttp://www.Eclipse.org/emf/2002/Ecore#//EBooleanObject"/><eStructuralFeatures xsi:type="ecore:EAttribute" name="indexed" eType="ecore:EDataTypehttp://www.Eclipse.org/emf/2002/Ecore#//EBooleanObject"/><eStructuralFeatures xsi:type="ecore:EAttribute" name="allowStoredForms" eType="ecore:EDataTypehttp://www.Eclipse.org/emf/2002/Ecore#//EBooleanObject"/><eStructuralFeatures xsi:type="ecore:EAttribute" name="maintainUnreadMarks" eType="ecore:EDataTypehttp://www.Eclipse.org/emf/2002/Ecore#//EBooleanObject"/><eStructuralFeatures xsi:type="ecore:EAttribute" name="replicateUnreadMarks" eType="#//WhoReplicate"
defaultValueLiteral=""/><eStructuralFeatures xsi:type="ecore:EAttribute" name="whenOpenedInBrowser" eType="#//OpenDesignElement"/><eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataTypehttp://www.Eclipse.org/emf/2002/Ecore#//EString"/><eStructuralFeatures xsi:type="ecore:EAttribute" name="useJavaScript" eType="ecore:EDataTypehttp://www.Eclipse.org/emf/2002/Ecore#//EBooleanObject"/></eClassifiers>
Codificación
Modelado visual de aplicaciones Domino
Basada en modelos
25
Proceso de uso de la herramienta
Uso de la herramienta
Modelado visual de aplicaciones Domino
26
Ejemplo de modelo implementado en ECLIPSE
Uso de la herramienta
Modelado visual de aplicaciones Domino
27
DSM ‐ Generador de aplicaciones
Uso de la herramienta
Modelado visual de aplicaciones Domino
• Se realizaron pruebas de funcionalidad propias de un proceso de desarrollo SW
• Se realizaron pruebas para la comprobación de la hipótesis planteada:
– Facilidad de uso (usabilidad)
– Tiempo de desarrollo (ejercicios de diseño)
28
Pruebas
Modelado visual de aplicaciones Domino
• Los participantes dijeron conocer algún lenguaje de modelado de propósito general y tener experiencia en el diseño de aplicaciones
• En el promedio casi nunca diseñan el software que codifican
• Facilidad evaluada en términos de usabilidad. Calificación promedio obtenida para el modelador fue de 4.5 de una escala de evaluación entre 1 y 5 lo que la ubica entre buena y excelente
• Tiempo empleado para la elaboración del ejercicio de diseño usando el DSM de esta tesis disminuyó en un 29% con respecto a otras herramientas de modelado utilizadas por los participantes.
• El tiempo promedio necesario para generar la aplicación a partir del modelo fue ligeramente superior a un minuto
29
Resultados de las pruebas
Modelado visual de aplicaciones Domino
30
Conclusiones
Modelado visual de aplicaciones Domino
Con base en la hipótesis planteada en este trabajo de tesis, se puede concluir que:
Como indican los resultados de este trabajo de tesis y con base en la hipótesis planteada al inicio, se puede concluir que contar con una herramienta de modelado para aplicaciones Lotus Notes / Domino facilita el modelado de las aplicaciones y disminuye el tiempo de desarrollo al generar la estructura de la aplicación a partir de su
diseño, por lo tanto la hipótesis es cierta
Por lo tanto, la hipótesis es cierta.
El tiempo de codificación disminuirá aún más gracias a la generación automática de código a partir de un diseño dado
• Se obtuvo una herramienta de modelado visual que permite diseñar aplicaciones Lotus Notes y la generación de código de la aplicación correspondiente
• En el desarrollo de la herramienta se utilizó un proceso formal de desarrollo de software que contempla las actividades de análisis, diseño, desarrollo e implementación
• Se revisaron las herramientas para generación de código a través del modelado visual
• Se utilizó un lenguaje de modelado de dominio específico que permite modelar aplicaciones Lotus Notes basado en la especificación de Perfiles de UML
31
Conclusiones
Modelado visual de aplicaciones Domino
• Este trabajo de tesis alcanzó los beneficios esperados de:
– Precisión y acercamiento entre el diseño y las aplicaciones reales, principios de la Arquitectura Dirigida por Modelos
– Uniformidad en los diagramas de diseño
– Aprendizaje natural y rápido del lenguaje visual
• Beneficios adicionales:
– Se ha adquirido conocimiento valioso para análisis y definición de modelos de dominio para resolver problemas de diseño o modelado en otras disciplinas.
– Se ha obtenido capacidad para desarrollar herramientas visuales de modelado de dominios y generación automática de código o aplicaciones
32
Beneficios
Modelado visual de aplicaciones Domino
• La arquitectura de este trabajo es extensible lo que permitirá:
– Implementar la funcionalidad de ingeniería inversa. En esta tesis se propone la arquitectura para esta solución
– Implementar patrones de diseño. Para reutilización de código y soluciones probadas a problemas específicos, permitiendo explotar el conocimiento de los desarrolladores y arquitectos de software
– Integrar la herramienta de modelado a nuevas versiones del IDE de desarrollo Lotus Domino Designer. IBM ha apostado a la infraestructura de Eclipse como base de sus herramientas de software
33
Trabajos futuros
Modelado visual de aplicaciones Domino
• Con el conocimiento generado en este trabajo de investigación y desarrollo, tenemos como posibles implementaciones el modelado de:
– Sistemas empresariales
– Procesos de negocios
– Procesos de gestión del conocimiento
– Procesos de producción, químicos, automotrices, etc.
– Procesos de generación eléctrica
– Procesos de distribución
– Procesos de transformación
34
Áreas de oportunidad
Modelado visual de aplicaciones Domino
35