Tesis Modelado Visual de aplicaciones Lotus Domino

35
Modelado visual de aplicaciones Domino Hiriam Eduardo Pérez Vidal Tesis para obtener el grado de Maestría en Tecnologías de Información

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 of Tesis Modelado Visual de aplicaciones Lotus Domino

Page 1: Tesis Modelado Visual de aplicaciones Lotus Domino

Modelado visual de aplicaciones Domino

Hiriam Eduardo Pérez Vidal

Tesis para obtener el grado de

Maestría en Tecnologías de Información

Page 2: Tesis Modelado Visual de aplicaciones Lotus Domino

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

Page 3: Tesis Modelado Visual de aplicaciones Lotus Domino

Modelado visual de aplicaciones Domino

Modelos no estandarizados con poca semántica visual

Page 4: Tesis Modelado Visual de aplicaciones Lotus Domino

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

Page 5: Tesis Modelado Visual de aplicaciones Lotus Domino

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

Page 6: Tesis Modelado Visual de aplicaciones Lotus Domino

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

Page 7: Tesis Modelado Visual de aplicaciones Lotus Domino

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

Page 8: Tesis Modelado Visual de aplicaciones Lotus Domino

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

Page 9: Tesis Modelado Visual de aplicaciones Lotus Domino

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.

Page 10: Tesis Modelado Visual de aplicaciones Lotus Domino

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

Page 11: Tesis Modelado Visual de aplicaciones Lotus 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

Page 12: Tesis Modelado Visual de aplicaciones Lotus Domino

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

Page 13: Tesis Modelado Visual de aplicaciones Lotus Domino

Selección de la herramienta

Modelado visual de aplicaciones Domino

Tiempo de desarrollo

• MetaEdit+• MS DSL Toolkit• Enterprise Architect• Wepshere App Dev

Page 14: Tesis Modelado Visual de aplicaciones Lotus Domino

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

Page 15: Tesis Modelado Visual de aplicaciones Lotus Domino

15

Clasificación de elementos de diseño

Análisis de dominio

Modelado visual de aplicaciones Domino

Page 16: Tesis Modelado Visual de aplicaciones Lotus Domino

16

Definición del metamodelo

Modelado visual de aplicaciones Domino

Page 17: Tesis Modelado Visual de aplicaciones Lotus 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

Page 18: Tesis Modelado Visual de aplicaciones Lotus Domino

18

Validación del DSL

Modelado visual de aplicaciones Domino

Page 19: Tesis Modelado Visual de aplicaciones Lotus Domino

Se siguió un proceso formal de desarrollo de SW

19

Desarrollo de la herramienta DSM

Modelado visual de aplicaciones Domino

Page 20: Tesis Modelado Visual de aplicaciones Lotus Domino

20

Casos de uso

Requerimientos

Modelado visual de aplicaciones Domino

Page 21: Tesis Modelado Visual de aplicaciones Lotus Domino

21

Diseño de arquitectura

Modelado visual de aplicaciones Domino

Page 22: Tesis Modelado Visual de aplicaciones Lotus Domino

22

Proceso de creación de la herramienta gráfica basada en modelos

Codificación

Modelado visual de aplicaciones Domino

Page 23: Tesis Modelado Visual de aplicaciones Lotus Domino

23

Codificación

Modelado visual de aplicaciones Domino

Page 24: Tesis Modelado Visual de aplicaciones Lotus 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

Page 25: Tesis Modelado Visual de aplicaciones Lotus Domino

25

Proceso de uso de la herramienta

Uso de la herramienta

Modelado visual de aplicaciones Domino

Page 26: Tesis Modelado Visual de aplicaciones Lotus Domino

26

Ejemplo de modelo implementado en ECLIPSE

Uso de la herramienta

Modelado visual de aplicaciones Domino

Page 27: Tesis Modelado Visual de aplicaciones Lotus Domino

27

DSM ‐ Generador de aplicaciones

Uso de la herramienta

Modelado visual de aplicaciones Domino

Page 28: Tesis Modelado Visual de aplicaciones Lotus 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

Page 29: Tesis Modelado Visual de aplicaciones Lotus 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

Page 30: Tesis Modelado Visual de aplicaciones Lotus 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

Page 31: Tesis Modelado Visual de aplicaciones Lotus Domino

• 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

Page 32: Tesis Modelado Visual de aplicaciones Lotus 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

Page 33: Tesis Modelado Visual de aplicaciones Lotus 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

Page 34: Tesis Modelado Visual de aplicaciones Lotus 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

Page 35: Tesis Modelado Visual de aplicaciones Lotus Domino

35