SlideShare una empresa de Scribd logo
1 de 211
Descargar para leer sin conexión
   
  
  
  
CON ESTUDIOS RECONOCIDOS ANTE LA SECRETARÍA DE EDUCACIÓN PÚBLICA (SEP),
SEGÚN ACUERDO No. 2007337 DE FECHA 23 DE MARZO 2007
MODELADO VISUAL DE APLICACIONES DOMINO
TESIS
QUE PARA OBTENER EL GRADO DE:
MAESTRÍA EN TECNOLOGÍAS DE INFORMACIÓN
PRESENTA:
HIRIAM EDUARDO PÉREZ VIDAL
ASESOR: MATI GWENDOLYNE DELGADO GARCÍA DE LA CADENA
CUERNAVACA, MORELOS. DICIEMBRE DE 2009
   
Abstract
The  following  research  presents:  a  Domain  Specific  Language  Modeling  (DSLM)  for  Lotus  
Notes  applications  and  a  software  tool  that  implements  it.    
This   tool   allows   to   design   applications   using   the   DSL   for   Lotus   Notes   Applications,   and  
create  the  application  code.  
Resúmen
El   siguiente   trabajo   de   investigación   presenta:   un   lenguaje   de   modelado   de   dominio  
específico  para  aplicaciones  Lotus  Notes  (DSLM)  y  una  herramienta  de  software  que  lo  
implementa.    
Esta   herramienta   permitirá   a   partir   de   un   determinado   modelo   generar   el   código   de   la  
aplicación  correspondiente.  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Índices  
i    
  
Contenido  
Introducción  ........................................................................................................................  1
Antecedentes  .....................................................................................................................  3
Planteamiento  del  problema  ..............................................................................................  4
Objetivos  de  la  tesis  ...........................................................................................................  5
Objetivo  general  .............................................................................................................  5
Objetivos  específicos  .....................................................................................................  5
Justificación  .......................................................................................................................  5
Hipótesis  ............................................................................................................................  6
Beneficios  esperados  ........................................................................................................  6
Alcance  y  limitaciones  .......................................................................................................  7
Metodología  .......................................................................................................................  7
Estructura  de  la  tesis  .........................................................................................................  9
Estado  del  arte  .................................................................................................................  11
1. Capítulo:  Diseño  de  software  ...................................................................................  13
1.1. Introducción  ..........................................................................................................  14
1.2. Diseño  ...................................................................................................................  15
1.3. Lenguajes  y  modelado  visual  ................................................................................  21
1.3.1. UML  ...............................................................................................................  21
1.3.2. Lenguajes  de  dominio  específico  ..................................................................  23
1.3.3. Modelado  de  dominio  específico  ...................................................................  26
1.3.4. Perfiles  de  UML  .............................................................................................  27
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Índices  
ii    
2. Capítulo:  Herramientas  de  modelado  ......................................................................  31
2.1. MetaEdit+  ..............................................................................................................  32
2.2. Microsoft  DSL  Tools  ..............................................................................................  34
2.3. Proyecto  de  modelado  de  Eclipse  ........................................................................  37
2.4. Elección  de  la  herramienta  ...................................................................................  39
3. Capítulo:  Plataforma  Lotus  Notes  /  Domino  ...........................................................  40
3.1. Breve  historia  ........................................................................................................  41
3.2. Elementos  de  diseño  ............................................................................................  41
3.3. Funcionalidades  y  características  .........................................................................  42
3.4. Productos  de  la  plataforma  ...................................................................................  43
4. Capítulo:   Lenguaje   de   modelado   de   dominio   específico   para   Lotus   Notes   /  
Domino  ..............................................................................................................................  46
4.1. Introducción  ..........................................................................................................  47
4.2. Proceso  para  definir  el  lenguaje  ...........................................................................  47
4.2.1. Análisis  de  dominio  ........................................................................................  48
4.2.2. Metamodelo  ...................................................................................................  54
4.2.3. DSL  para  aplicaciones  Lotus  Domino  ............................................................  55
4.2.4. Validación  del  DSL  ........................................................................................  56
5. Capítulo:  Desarrollo  de  la  herramienta  ...................................................................  59
5.1. Componentes  de  la  herramienta  ...........................................................................  60
5.2. Requerimientos  .....................................................................................................  60
5.2.1. Alcances  ........................................................................................................  60
5.2.2. Objetivo  general  del  sistema  .........................................................................  60
5.2.3. Funciones  del  producto  .................................................................................  60
5.2.4. Usuarios  .........................................................................................................  61
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Índices  
iii    
5.2.5. Interfaces  y  relaciones  de  los  sistemas  .........................................................  61
5.2.6. Características  de  usuarios  ...........................................................................  61
5.2.7. Restricciones  .................................................................................................  61
5.2.8. Dependencias  y  supuestos  ............................................................................  61
5.2.9. Características  del  sistema  ............................................................................  61
5.2.10. Especificación  de  casos  de  uso  .....................................................................  62
5.3. Diseño  de  la  arquitectura  ......................................................................................  65
5.3.1. Arquitectura  general  de  la  herramienta  .........................................................  65
5.3.2. Diseño  de  despliegue  ....................................................................................  66
5.3.3. Diseño  de  interfaces  ......................................................................................  67
5.3.4. Diseño  de  los  módulos  ..................................................................................  69
5.3.5. Diseño  de  datos  .............................................................................................  80
5.3.6. Arquitectura  propuesta  para  ingeniería  inversa  .............................................  82
6. Capítulo:  Uso  de  la  herramienta  ..............................................................................  84
6.1. Proceso  de  uso  .....................................................................................................  85
6.2. Uso  del  modelador  ................................................................................................  86
6.3. Uso  del  generador  de  código  ................................................................................  90
7. Capítulo:  Pruebas  ......................................................................................................  92
7.1. Protocolo  de  pruebas  ............................................................................................  93
7.2. Interpretación  de  los  resultados  ............................................................................  95
Conclusiones  ....................................................................................................................  99
Conclusiones  .................................................................................................................  100
Beneficios  ......................................................................................................................  101
Recomendaciones  ..........................................................................................................  103
Recomendaciones  de  mejora  ........................................................................................  104
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Índices  
iv    
Trabajos  futuros  .............................................................................................................  104
Áreas  de  oportunidad  ....................................................................................................  104
Bibliografía  ......................................................................................................................  106
Referencias  bibliográficas  ..............................................................................................  107
Anexo...............................................................................................................................  110
Perfil  UML  para  aplicaciones  Lotus  Notes  .....................................................................  111
Introducción  ................................................................................................................  111
Panorama  general  ......................................................................................................  112
Perfiles  UML  ...............................................................................................................  115
Desarrollo  del  Perfil  UML  para  Lotus  Domino  Designer  ............................................  118
  
  
     
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Índices  
v    
Índice  de  figuras  
  
Figura  1  Ejemplo  de  un  diagrama  de  diseño  no  estandarizado  ............................................  3  
Figura  2  Mapa  conceptual  del  marco  teórico  ......................................................................  15  
Figura  3  El  proceso  unificado  Rational:  RUP(  Rational  Unified  Process)  (IBM,  2006)  .......  16  
Figura  4  Flujo  de  trabajo  de  la  etapa  de  análisis  y  diseño  de  RUP  (IBM,  2006)  .................  18  
Figura  5  Arquitectura  Dirigida  por  Modelos  .........................................................................  19  
Figura  6  Estructura  de  alto  nivel  de  UML  2.1.1  (OMG,  2007b)  ...........................................  23  
Figura  7  Fases  para  el  desarrollo  de  un  DSL  ......................................................................  25  
Figura  8  Función  del  DSL  ....................................................................................................  27  
Figura  9  Elementos  definidos  en  el  paquete  perfil      (OMG,  2007a)  ....................................  28  
Figura  10  Herramienta  MetaEdit+  .......................................................................................  33  
Figura  11  Arquitectura  de  MetaEdit+  ...................................................................................  34  
Figura  12  IDE  de  Microsoft  VisualStudio  con  DSL  Tool  ......................................................  35  
Figura  13  Arquitectura  DSL  Tools  .......................................................................................  36  
Figura  14  Proyectos  de  Visual  Studio  al  crear  un  DSL  .......................................................  36  
Figura  15  Analogía  entre  Eclipse  EMF  y  GMF  ....................................................................  38  
Figura  16  Proceso  de  generación  de  un  modelador  con  Eclipse  GMF  ...............................  38  
Figura  17  Composición  de  una  BDs  Notes  .........................................................................  41  
Figura  18  Elementos  de  diseño  de  Lotus  Notes  .................................................................  42  
Figura  19  Funciones  y  características  de  la  plataforma  Notes/Domino  ..............................  43  
Figura  20  Proceso  para  la  obtención  del  DSL  .....................................................................  48  
Figura  21  Distribución  de  elementos  de  diseño  en  las  aplicaciones  ...................................  52  
Figura  22  Clasificación  de  elementos  de  diseño  .................................................................  53  
Figura  23  Metamodelo  de  aplicaciones  Lotus  Domino  .......................................................  54  
Figura  24  Clasificación  de  los  estereotipos  del  perfil  de  UML  para  Lotus  ...........................  55  
Figura  25  Ejemplos  de  diagramas  de  diseño  no  estandarizados  ........................................  56  
Figura  26  Ejemplo  de  diagrama  simplificado  para  la  validación  del  DSL  ............................  57  
Figura  27  Ejemplo  de  diseño  especificando  las  propiedades  de  los  elementos  .................  58  
Figura  28  Desarrollo  de  herramienta  de  modelado  .............................................................  60  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Índices  
vi    
Figura  29  Casos  de  uso  de  herramienta  de  modelado  .......................................................  62  
Figura  30  Arquitectura  general  del  DSM  .............................................................................  65  
Figura  31  Secuencia  de  ejecución  del  modelado  a  la  generación  ......................................  66  
Figura  32  Diagrama  de  despliegue  de  la  herramienta  ........................................................  66  
Figura  33  Interfaz  gráfica  del  componente  de  modelado  ....................................................  68  
Figura  34  Interfaz  gráfica  del  componente  de  generación  de  aplicaciones  ........................  69  
Figura  35  Diseño  del  modelador  .........................................................................................  69  
Figura  36  Proceso  de  creación  de  la  herramienta  gráfica  basada  en  modelos  ..................  71  
Figura  37  Estructura  del  modelo  de  dominio  dominoapp.ecore  ..........................................  71  
Figura  38  Documento  XML  del  modelo  de  dominio  ............................................................  72  
Figura  39  Vista  gráfica  del  modelo  de  dominio  ...................................................................  72  
Figura  40  Estructura  del  modelo  de  generación  .................................................................  73  
Figura  41  Modelo  de  definición  gráfica  ...............................................................................  74  
Figura  42  Documento  XML  del  modelo  de  definición  gráfica  ..............................................  74  
Figura  43  Estructura  del  modelo  de  definición  de  herramientas  o  tooling  ..........................  75  
Figura  44  Documento  XML  del  modelo  de  definición  de  herramientas  ...............................  75  
Figura  45  Estructura  del  modelo  de  definición  de  mapeo  o  mapping  .................................  76  
Figura  46  Documento  XML  del  modelo  de  definición  de  mapeo  .........................................  77  
Figura  47  Estructura  del  modelo  de  generación  GMF  ........................................................  77  
Figura  48  Ejemplo  de  estructuras  de  diseños  de  aplicaciones  ...........................................  78  
Figura  49  Ejemplo  de  XML  de  un  diagrama  de  diseño  .......................................................  79  
Figura  50  Diseño  del  generador  de  aplicaciones  ................................................................  79  
Figura  51  Arquitectura  del  generador  de  aplicaciones  ........................................................  80  
Figura  52  Estructura  de  datos  de  la  eclass  database.  Vista  de  clase  .................................  80  
Figura  53  Estructura  de  la  eclass  database.  Vista  de  árbol  ................................................  81  
Figura  54  Estructura  de  la  eclass  database.  Vista  XML  ......................................................  81  
Figura  55  Diseño  propuesto  para  el  extractor  de  diseño  ....................................................  82  
Figura  56  Arquitectura  propuesta  para  el  extractor  de  diseño  ............................................  82  
Figura  57  Proceso  de  uso  de  la  herramienta  ......................................................................  85  
Figura  58  DSM  -­  Herramienta  de  modelado  .......................................................................  86  
Figura  59  Creación  de  un  modelo  de  diseño  de  Lotus  Notes/Domino  ................................  87  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Índices  
vii    
Figura  60  Archivos  de  la  estructura  del  modelo  e  interfaz  gráfica  ......................................  87  
Figura  61  Barra  de  herramientas  de  modelado  ...................................................................  88  
Figura  62  Ventana  de  propiedades  de  los  elementos  .........................................................  89  
Figura  63  Ejemplo  de  diagrama  de  diseño  elaborado  en  el  modelador  ..............................  89  
Figura  64  Estructura  resultante  del  modelo  ........................................................................  90  
Figura  65  DSM  -­  Generador  de  aplicaciones  ......................................................................  91  
Figura  66  Diseño  de  un  formulario  ....................................................................................  114  
Figura  67  Diagrama  de  clase  para  un  elemento  form  .......................................................  115  
Figura  68  Metamodelo  de  Lotus  Domino  Designer  ...........................................................  119  
Figura  69  Clasificación  de  los  estereotipos  de  LDD  ..........................................................  124  
Figura  70  Metamodelo  de  Lotus  ........................................................................................  127  
Figura  71  Extendiendo  al  metaelemento  Class  .................................................................  128  
Figura  72  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  129  
Figura  73  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  130  
Figura  74  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  131  
Figura  75  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  132  
Figura  76  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  133  
Figura  77  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  134  
Figura  78  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  135  
Figura  79  Extendiendo  al  metaelemento  Aggregation  ......................................................  136  
Figura  80  Notación  para  la  relación  de  contención  ...........................................................  196  
Figura  81  Notación  para  la  relación  de  contención  reflexiva  .............................................  197  
Figura  82  Relación  de  agregación,  esquema  general  .......................................................  198  
Figura  83  Relación  de  composición,  esquema  general  ....................................................  199  
  
     
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Índices  
viii    
Índice  de  tablas  
  
Tabla  1  Lista  de  productos  de  Lotus  por  categoría  .............................................................  45  
Tabla  2  Descripción  de  elementos  de  diseño  de  Lotus  .......................................................  50  
Tabla  3  Porcentaje  de  uso  de  elementos  de  diseño  en  aplicaciones  Lotus  ........................  51  
Tabla  4  Resultados  de  las  pruebas  .....................................................................................  98  
Tabla  5  Estereotipos  definidos  para  Lotus  Domino  Designer  ...........................................  123  
Tabla  6  Definición  de  la  propiedad  multiplicidad  ...............................................................  199  
Tabla  7  Definición  de  la  propiedad  propagación  de  borrado  .............................................  199  
Tabla  8  Definición  de  la  propiedad  reflexividad  .................................................................  200  
Tabla  9  Valores  fijos  para  la  relaciones  ............................................................................  201  
  
  
  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
1    
  
  
  
  
  
  
Introducción  
Introducción  a  este  trabajo  de  tesis.  Se  
presentan  los  antecedentes  al  trabajo  de  
investigación,  planteamiento  del  problema,  
objetivos  de  la  tesis,  justificación  del  trabajo,  
hipótesis,  beneficios  esperados,  alcances  y  
limitaciones,  metodología  a  utilizar  y  descripción  
de  la  estructura  de  la  tesis  mediante  un  
resumen.  
     
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
2    
El  desarrollo  de  aplicaciones  empresariales  presenta  complejidades  como:  integración  de  
diferentes  plataformas  tecnológicas,  ambientes  de  desarrollo  y  procesos  de  ingeniería  de  
software.    
El   correcto   modelado   de   dichas   aplicaciones   antes   de   su   codificación,   beneficia   el  
aseguramiento  de  la  calidad  del  software,  mejora  la  arquitectura,  facilita  el  mantenimiento  
y  ayuda  a  la  transferencia  tecnológica  al  cliente.  
Lenguajes  de  modelado  genérico  o  de  propósito  general  pueden  emplearse  para  describir  
una   gran   parte   de   las   características   de   los   sistemas.   Este   es   el   caso   del   Lenguaje  
Unificado  de  Modelado:  UML  (Por  sus  siglas  en  inglés  Unified  Modeling  Language).  
Existen  herramientas  tanto  libres  como  propietarias  que  permiten  diseñar  aplicaciones  en  
cada  uno  de  los  lenguajes  de  modelado  existentes.    
Es   común   que   cada   plataforma   o   tecnología   presenten   características   propias   que  
requieren  de  una  técnica  o  lenguaje  de  modelado  en  particular.  Así  para  los  sistemas  de  
bases  de  datos  relacionales  un  modelo  Entidad-­Relación  o  un  modelo  de  clases  de  UML  
pueden  ser  suficientes.  
Sin   embargo   en   determinadas   tecnologías   o   dominios   tecnológicos   un   lenguaje   de  
modelado  general  puede  ser  insuficiente  para  describir  todas  las  características  deseadas.  
Ante  esta  situación  puede  definirse  un  lenguaje  de  dominio  específico,  el  cual  provea  de  
los  elementos  que  permitan  describir  con  mayor  precisión  dichas  características.    
Lotus  Domino  es  la  plataforma  líder  en  aplicaciones  colaborativas.  Presenta  un  ambiente  
de  desarrollo  orientado  a  objetos  y  una  base  de  datos  documental.  
El   siguiente   trabajo   de   investigación   presenta:   un   lenguaje   de   modelado   de   dominio  
específico   para   aplicaciones   Lotus   Notes   y   una   herramienta   de   software   que   lo  
implementa.   Esta   herramienta   permitirá   a   partir   de   un   determinado   modelo   generar   el  
código  de  la  aplicación  correspondiente.    
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
3    
Antecedentes  
Los   equipos   de   desarrollo   en   aplicaciones   Lotus   Notes   carecen   de   un   lenguaje   de  
modelado  adecuado  a  la  naturaleza  de  esta  tecnología.  
Algunos  equipos  han  implementado  procesos  de  desarrollo  software  a  la  medida.  Estos  
procesos  difícilmente  pueden  apoyarse  por  herramientas  comerciales  por  lo  que  es  común  
contar  con  herramientas  desarrolladas  por  los  mismos  equipos.  Sin  embargo,  la  etapa  de  
diseño   requiere   ser   mejorada   con   el   propósito   de   definir   arquitecturas   críticas   que   son  
enviadas  a  los  desarrolladores  para  su  posterior  codificación.  
Se   han   utilizado   distintos   lenguajes   de   modelado   para   diseñar   las   aplicaciones.   Entre  
estos  lenguajes  destaca  el  uso  del  UML.  Sin  embargo  no  se  ha  encontrado  un  lenguaje  de  
modelado   que   permita   definir   con   mayor   precisión   las   características   propias   de   una  
aplicación  de  este  dominio  tecnológico.  
  
Figura  1  Ejemplo  de  un  diagrama  de  diseño  no  estandarizado  
Ante  esta  necesidad  en  colaboración  con  el  Centro  Nacional  de  Investigación  y  Desarrollo  
Tecnológico  (CENIDET),  bajo  la  tesis  “Definición  de  un  Lenguaje  de  Dominio  Específico  
para   un   entorno   de   desarrollo   rápido   de   aplicaciones”   presentada   por   Guillermo   Rivera  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
4    
(Rivera,  2008),  se  realizó  el  trabajo  de  investigación  para  la  definición  de  un  Lenguaje  de  
dominio  apropiado  para  Lotus  Notes.  
Lotus  Notes  es  una  tecnología  que  difiere  de  la  programación  orientada  a  objetos  y  del  
modelo   tradicional   de   bases   de   datos   relacionales.   Esta   tecnología   proporciona   un  
ambiente   de   desarrollo   rápido   de   aplicaciones   llamado   Lotus   Domino   Designer.   Lotus  
Notes  integra  en  una  solo  base  de  datos:  
•   Elementos  de  programación  o  lógica  de  negocios  
•   Interfaz  del  usuario  
•   Datos  
•   Seguridad  
Planteamiento  del  problema  
Existen   una   gran   cantidad   de   aplicaciones   colaborativas   y   portales   desarrollados   e  
instalados  en  la  plataforma  Lotus  Notes    /  Domino.  Muchas  de  estas  aplicaciones  carecen  
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  para  requerimientos  
similares  
Como  consecuencia  de  todo  lo  anterior,  podemos  decir  que  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.  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
5    
Objetivos  de  la  tesis  
Objetivo  general  
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.  
Objetivos  específicos  
•   Revisar    las  herramientas  para  generación  de  código  a  través  del  modelado  visual  
•   Definir   un   lenguaje   de   modelado   de   dominio   específico   que   permite   modelar  
aplicaciones  Lotus  Domino  basado  en  la  especificación  de  Perfiles  de  UML  
•   Desarrollar   una   herramienta   de   software   que   permita   generar   diagramas   de  
aplicaciones  utilizando  el  lenguaje  de  dominio  específico  definido  previamente  
•   Desarrollar  una  herramienta  que  permita,  dado  un  diagrama  de  aplicación,  generar  
el  código  correspondiente  de  la  aplicación.  
Justificación  
Actualmente   no   existe   una   herramienta   de   modelado   específico   para   esta   tecnología   o  
dominio  por  lo  que  esta  investigación  será  innovadora  en  este  terreno.  
El  producto  de  esta  tesis  puede  ser  utilizada  en  el  diseño  de  aplicaciones  Lotus  Notes.  Así  
mismo,   mejorando   la   calidad   de   las   aplicaciones   al   detectar   errores   desde   la   etapa   de  
diseño   y   evitando   detectarlos   hasta   la   etapa   de   comercialización   e   implementación   de  
productos  donde  los  costos  para  reparar  dichos  errores  es  muy  alto.  
Dado  que  no  se  cuenta  con  un  lenguaje  de  modelado  y  herramienta  que  permita  definir  
con   mayor   precisión   las   características   propias   de   una   aplicación   Lotus   Notes   y   para  
resolver  el  problema  planteado  se  propone  obtener:    
1.   Un  Lenguaje  de  Modelado  de  Dominio  Específico  
2.   Una  herramienta  de  modelado  visual  que  implemente  el  lenguaje  de  modelado  
3.   Una   herramienta   que   permita   la   generación   automática   de   los   elementos   de  
diseño  que  componen  la  aplicación  modelada    
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
6    
El   lenguaje   obtenido   modelará   con   mayor   precisión   las   aplicaciones   Lotus   Notes.   Esta  
herramienta  permitirá  a  partir  de  un  determinado  modelo  generar  el  código  de  la  aplicación  
correspondiente.  
Hipótesis  
Ante  las  necesidades  de  modelar  con  mayor  precisión  las  aplicaciones  Lotus  Notes,  dando  
mayor   semántica   a   los   diagramas   de   diseño   y   la   generación   de   la   estructura   de   la  
aplicación  a  partir  de  dichos  diseños  se  plantea  la  siguiente  hipótesis:  
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.  
En  esta  hipótesis  se  mencionan  las  variables  de:  
•   Facilidad  de  modelado  
•   Disminución  de  tiempo  de  desarrollo  
Beneficios  esperados  
Con  el  trabajo  de  esta  tesis  se  esperan  alcanzar  los  beneficios  de:  
•   Mayor  precisión  en  la  generación  de  diagramas  de  diseño  de  las  aplicaciones  
•   Diseños   uniformes   al   contar   con   un   lenguaje   visual   único   en   los   equipos   de  
desarrollo  
•   Reducción  en  el  tiempo  de  modelado.  Los  desarrolladores  toman  objetos  visuales  
conocidos  y  evitan  tener  que  aprender  lenguajes  y  reglas  distintas  a  su  entorno.  
•   Congruencia  entre  los  diagramas  de  diseño  y  las  aplicaciones  generadas.  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
7    
Alcance  y  limitaciones  
El  trabajo  de  esta  tesis  tiene  como  alcances:  la  definición  de  un  DSL  que  permite  diseñar  
aplicaciones  Lotus  Domino,  el  desarrollo  de  una  herramienta  visual  que  lo  implementa  y  la  
generación  automática  de  la  aplicación  modelada.  
La  funcionalidad  de  generación  automática  de  aplicaciones  crea  los  elementos  de  diseño  
principales   modelados   pero   la   codificación   detallada   queda   en   manos   del   programador  
para  la  etapa  de  codificación  en  un  proceso  de  ingeniería  de  software.  
La  herramienta  no  implementa  la  funcionalidad  de  ingeniería  inversa  pero  se  propone  la  
arquitectura  para  implementarla.  
Metodología  
Este  trabajo  de  tesis  se  basa  en  un  proyecto  de  tipo  investigación  y  desarrollo  (I+D).  Por  
esta  razón  tiene  dos  componentes  principales:    
•   La  investigación  de  técnicas,  herramientas,  y  soluciones  para  la  definición  de  una  
herramienta  de  modelado  visual.  Como  resultado  de  la  etapa  de  investigación  y  con  
el   conocimiento   generado   se   definirá   un   lenguaje   de   modelado   mediante   un  
estándar  formal  de  especificación  de  lenguajes.  
•   El  desarrollo  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  
Para  la  etapa  de  investigación  de  utilizan  los  mecanismos  de:    
•   Análisis   y   síntesis   en   la   determinación   del   lenguaje   de   modelo   de   dominio  
específico  
•   Encuesta   y   prueba   para   evaluar   el   resultado   de   la   herramienta   de   software  
desarrollada  y  comprobar  las  variables  planteadas  en  la  hipótesis.  
Las  pruebas  y  la  validación  del  DSL  se  realizan  con  el  apoyo  de  expertos  en  el  desarrollo  
de  aplicaciones  de  la  plataforma  Lotus  Notes  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
8    
La  metodología  seguida  para  el  desarrollo  del  siguiente  trabajo  se  divide  en  las  siguientes  
fases:  
FASE  1.  Investigación  del  estado  del  arte.  Estudio  del  estado  del  arte  en  la  definición  de  
lenguajes  de  dominio  específico.  
FASE  2.  Definición  del  DSL  para  modelado  de  aplicaciones  Lotus  Notes.  Definición  
del  lenguaje  de  modelado  a  utilizar.  
FASE   3.   Estudio   de   herramientas   para   la   generación   de   DSL.   Se   estudian   los  
alcances,   ventajas   y   desventajas   de   las   herramientas   que   implementan   DSL   y   generan  
código  automáticamente.  
FASE  4.  Definición  del  modelo  para  generación  de  código  a  partir  del  DSL.  Definición  
del  modelo  a  utilizar  para  la  generación  de  código  automático  a  partir  del  DSL  descrito  
FASE  5.  Validación  del  DSL  para  modelado  de  aplicaciones  Lotus  Notes.  Validar  los  
diagramas   obtenidos   a   partir   del   uso   del   DSL   de   manera   tal   que   representen  
correctamente  el  diseño  de  la  aplicación  Lotus  Notes  
FASE   6.   Desarrollo   de   la   herramienta   de   modelado   y   generación   automática   de  
código.  Se  implementa  la  herramienta  de  modelado  para  elaborar  diseños  de  aplicaciones  
utilizando   el   DSL   para   aplicaciones   Lotus   Notes   y   a   partir   del   diseño   generar  
automáticamente  el  código  de  los  elementos  de  diseño  representados.  
Esta  actividad  sigue  un  proceso  formal  de  desarrollo  de  software,  el  cual  se  compone  de:  
i.   Requerimientos  
ii.   Diseño  (arquitectura,  detallado,  interfaces,  datos)  
iii.   Codificación    
iv.   Pruebas  
FASE   7.   Validación   de   la   herramienta   desarrollada.   Validar   la   herramienta   contra  
aplicaciones  reales  desarrolladas  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
9    
FASE   8.   Elaboración   de   la   tesis.   Se   reúne   la   información   generada   para   generar   el  
documento  de  tesis  y  seguir  el  proceso  de  revisión  y  aceptación  del  trabajo  
Estructura  de  la  tesis  
A   continuación   se   presenta   un   breve   resumen   de   cada   uno   de   los   capítulos   que   se  
presentan  en  esta  tesis:  
En  los  Antecedentes,  se  exponen  la  problemática  que  da  origen  a  este  trabajo  haciendo  
énfasis  en  la  carencia  de  un  lenguaje  de  modelado  específico  para  las  aplicaciones  Lotus  
Notes   y   por   ello   las   deficiencias   en   la   etapa   de   diseño   Antecedentes.   Se   presenta   el  
estado   del   arte   en   la   definición   de   lenguajes   de   modelado   y   las   herramientas   más  
importantes.  Para  finalizar  se  presentan:  preguntas  de  investigación,  los  objetivos  de  esta  
tesis,  justificación,  hipótesis,  beneficios  esperados,  alcance  y  limitaciones  y  la  metodología  
empleada  en  el  desarrollo  de  este  trabajo  
En  el  Diseño  de  software,  se  describe  esta  etapa  como  parte  de  un  proceso  formal  de  
desarrollo  de  software.  La  actividad  de  diseño  está  ligada  a  enfoques  como  la  Arquitectura  
Dirigida   por   Modelos   la   cual   implementa   herramientas   de   modelado   y   regeneración  
automática   de   código.   En   el   diseño   de   aplicaciones   se   pueden   utilizar   dos   tipos   de  
lenguajes   de   modelado:   de   propósito   general   y   de   dominio   específico.   El   UML   es   el  
lenguaje   de   modelado   de   propósito   general   más   utilizado   por   lo   que   se   describe   su  
composición.   Para   finalizar   se   presentan   a   los   las   características   y   el   proceso   para   la  
obtención  de  un  lenguaje  de  modelado  de  dominio  específico,  los  perfiles  de  UML  como  
un  método  para  representarlos  y  el  proceso  a  seguir  para  definir  un  DSL  
En   las   Herramientas   de   modelado   se   presentan   las   características   de   las   tres  
herramientas   más   utilizadas   en   la   actualidad:   MetaEdit+,   Microsoft   DSL   Tools   y   el  
Proyecto  de  modelado  de  Eclipse.  Adicionalmente  se  presentan  los  motivos  de  la  elección  
de  Eclipse  como  la  herramienta  base  a  utilizar  en  este  trabajo.  
En  el  capítulo  de  la  Plataforma  Lotus  Domino,  se  presentan  las  características  de  esta  
plataforma   colaborativa   empresarial.   Se   describen   sus,   elementos   de   diseño,  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
10    
funcionalidades,  características  y  productos  comerciales  de  la  plataforma  con  el  objeto  de  
entender  su  complejidad,  capacidad  y  alcance.  
En   el   capítulo   de   Lenguaje   de   Modelado   de   Dominio   Específico   para   Lotus  
Notes,   se   presenta   el   lenguaje   de   modelado   de   dominio   específico   a   utilizar   para   el  
diseño   de   aplicaciones.   Para   la   definición   de   este   lenguaje   se   realizó   el   análisis   de  
dominio,   la   definición   del   Metamodelo,   la   especificación   del   DSL   mediante   un   perfil   de  
UML   y   la   validación   de   dicho   DSL   mediante   la   elaboración   de   diagramas   de   diseño   de  
aplicaciones  Lotus  Notes  ya  existentes.  
En   el   Desarrollo   de   la   herramienta,   se   presentan   el   proceso   utilizado   para   la  
implementación   del   lenguaje   dentro   de   una   herramienta   de   modelado   y   generación  
automática  de  código.  Para  la  elaboración  de  la  herramienta  se  utilizó  un  proceso  formal  
de  desarrollo  de  software  por  lo  que  se  presentan  de  manera  detallada  los  requerimientos  
y   el   diseño   de   la   arquitectura.   Aunque   no   es   parte   de   este   trabajo   la   incorporación   de  
técnicas   de   ingeniería   inversa,   se   presenta   la   arquitectura   para   su   implementación   en  
trabajos  futuros.  
Uso   de   la   herramienta   describe   el   funcionamiento   y   uso   del   modelador   desarrollado  
para  la  elaboración  de  diagramas  de  diseño  basados  en  el  DSL.  De  la  misma  manera  se  
presenta  el  uso  del  generador  de  código  para    la  generación  automática  de  los  elementos  
de  diseño  Lotus  Notes  descritos  en  el  diagrama.  
En   Pruebas,   se   presenta   el   protocolo   de   pruebas   realizado   para   la   evaluación   de   la  
herramienta  desarrollada,  los  resultados  de  la  evaluación  y  su  interpretación.  
En  conclusiones  se  presentan  las  conclusiones  resultado  del  desarrollo  de  este  trabajo,  
los  beneficios  obtenidos,  los  trabajos  futuros,  áreas  de  oportunidad  para  la  reutilización  de  
la  experiencia  obtenida  durante  la  realización  de  este  trabajo.  
Se   presentan   las   recomendaciones   a   seguir   para   mejorar   el   presente   trabajo   en   un  
futuro,  los  trabajos  futuros  y  áreas  de  oportunidad.  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
11    
El  anexo  final  contiene  la  especificación  del  Lenguaje  de  Modelo  de  Dominio  Específico  
para  aplicaciones  Lotus  Notes  mediante  un  perfil  de  UML  
Estado  del  arte  
El   modelado   como   parte   fundamental   del   proceso   del   desarrollo   de   software,   puede  
realizarse   a   través   de:   lenguajes   de   modelado   de   propósito   general   o   lenguajes   de  
modelado  de  dominio  específico.      
Los   lenguajes   de   modelado   de   propósito   general,   tienen   como   finalidad   representar   de  
manera  genérica  las  facetas  de  un  sistema.  Estos  lenguajes  están  más  enfocados  en  la  
descripción  que  en  la  generación  de  código,  además  tienen  como  problema  principal  que  
los  elementos  de  un  diagrama  pueden  tener  diferentes  interpretaciones  si  son  utilizados  en  
diferentes   contextos   o   dominios   tecnológicos.   El   mejor   exponente   de   los   lenguajes   de  
modelado   de   propósito   general   es   el   UML   (por   sus   siglas   en   inglés:   Unified   Modeling  
Language).  (Steven  &  Pooley,  2007),  (OMG,  2007b)  
Este   tipo   de   lenguajes   no   han   sido   suficientes   para   modelar   muchos   de   los   dominios  
donde   se   desean   implementar.   Por   esta   razón   muchas   empresas   se   han   visto   en   la  
necesidad  de  generar  sus  propios  lenguajes  de  modelado.  
Los  lenguajes  de  modelado  de  dominio  específico:  DSL  (por  sus  siglas  en  inglés:  Domain  
Specific  Language),  tienen  como  objeto  describir  con  mayor  precisión  las  características  
propias   de   un   dominio   tecnológico.   Estos   lenguajes   en   la   mayoría   de   los   casos   están  
asociados   a   la   generación   automática   de   código.   La   especificación   de   un   DSL   está  
asociada   a   un   metamodelo   o   modelo   de   dominio.   Existen   varias   opciones   para   la  
descripción  de  un  lenguaje  de  modelado  de  domino  específico(Kelly  &  Tolvanen,  2008),  
entre  ellas  la  más  usada  son  los  perfiles  de  UML(Fuentes  &  Vallecillo,  2004).  
Para   facilitar   el   uso   de   un   lenguaje   de   modelado   de   dominio   específico,   este   debe  
implementarse   a   través   de   una   herramienta   de   software.   Existen   dos   caminos   para   su  
implementación:    
1.   Crear  una  herramienta  de  software  a  la  medida  o    
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Introducción  
12    
2.   utilizar  herramientas  de  terceros    especializadas  en  la  implementación  de  un  
DSL.   (Kelly,   2004)   ,   (Ehrig,   Ermel,   Hänsgen,   &   Taentzer,   2005),   (Leroux,  
Nally,  &  Hussey,  2006)  
Las   tres   herramientas   actuales   más   utilizadas   para   la   implementación   de   un   DSL   son:  
MetaEdit+,  Eclipse  y  Microsoft  DSL  Tools.  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
13    
  
  
  
  
  
  
  
1.    Capítulo:  Diseño  de  software  
En   esta   sección   se   describen   los   conceptos  
claves  del  diseño  de  software  que  sustentan  el  
desarrollo   del   trabajo   de   investigación.   Se  
presenta   la   etapa   de   diseño   dentro   de   un  
proceso   formal   de   desarrollo   de   software,   los  
lenguajes   de   modelado   visual,   el   UML   como  
lenguaje  de  modelado  de  propósito  general,  los  
lenguajes  de  dominio  específico  y  los  perfiles  de  
UML  para  su  especificación  
     
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
14    
1.1.   Introducción  
El   diseño   de   software   traduce   los   requerimientos   en   modelos   que   serán   la   base   de   la  
etapa  posterior  de  codificación  de  la  aplicación.    
En  esta  etapa  de  diseño  existen  distintos  enfoques  sobre  el  uso  de  los  modelos.  En  los  
últimos  años  el  enfoque  de  la  Arquitectura  Dirigida  por  Modelos:  MDA  (Por  sus  siglas  en  
inglés:   Model   Driven   Architecture),   ha   hecho   énfasis      en   la   importancia   de   obtener   en  
primer  lugar  dichos  modelos  y  a  partir  de  estos,  obtener  de  manera  automática  el  código  
de  la  aplicación.  
Los  modelos  mencionados  pueden  elaborarse  utilizando  lenguajes  de  propósito  general  o  
lenguajes   de   dominio   específico:   DSL   (por   sus   siglas   en   inglés:   Domain   Specific  
Language).    
La  elaboración  de  un  DSL,  es  una  tarea  de  profundo  análisis  del  dominio  que  se  desea  
modelar  obteniendo  al  final  una  especificación  de  un  lenguaje  textual  o  visual.  
Existen   dos   opciones   principales   para   la   definición   de   un   DSL:   La   extensión   de   un  
lenguaje   de   propósito   general   como   el   UML   o   la   definición   completa   de   uno   nuevo  
utilizando  algún  estándar  abierto  o  de  facto.    
Para  facilitar  el  uso  de  un  DSL,  estos  lenguajes  suelen  implementarse  en  herramientas  de  
modelado   visual   que   permiten:   Elaborar   modelos   basados   en   el   DSL   y   generar  
automáticamente  el  código  de  la  aplicación  equivalente.  Algunas  herramientas  modernas  
permiten   realizar   ingeniería   inversa.   La   ingeniería   inversa   es   el   proceso   de   convertir  
código  fuente  de  aplicaciones  en  elementos  de  un  modelo.  
Cuando   se   han   obtenido   las   partes   antes   descritas   se   cuenta   con   una   herramienta   de  
Modelado   de   Dominio   Específico:   DSM   (por   sus   siglas   en   inglés:   Domain   Specific  
Modeling)  bajo  el  enfoque  MDA.  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
15    
  
Figura  2  Mapa  conceptual  del  marco  teórico  
  
1.2.   Diseño  
El   diseño   de   software   es   una   actividad   multidisciplinaria   que   proporciona   soluciones   a  
través   de   la   comunicación   efectiva   de   ideas   y   el   uso   de   prácticas   de   ingeniería.   El  
propósito  del  diseño  es  simplemente  producir  una  solución  a  un  problema.(Budgen,  2003)  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
16    
  
Figura  3  El  proceso  unificado  Rational:  RUP(  Rational  Unified  Process)  (IBM,  2006)  
La   etapa   de   diseño   es   una   parte   fundamental   de   todos   los   procesos   de   desarrollo   de  
software   más   importantes,   ya   que   su   propósito   es   describir   el   cómo   los   requerimientos  
serán  convertidos  en  productos  usando  la  solución  más  apropiada.  
Dada  la  profundidad  del  diseño  puede  considerarse  como:  
•   Alto  nivel,  cuando  se  enfoca  más  a  aspectos  de  arquitectura.  Ejemplo:  diagramas  
de  componentes,  modelado  de  negocios  
•   Detallado,   cuando   describe   con   mayor   precisión   la   implementación.   Ejemplos:  
diagramas  de  clases  
Para   Pressman      (Pressman,   2000),   esta   actividad   es   un   proceso   que   está   enfocado  
principalmente   en   cuatro   aspectos   o   atributos:   estructura   de   datos,   arquitectura   de  
software,   representaciones   de   interfaces   y   detalles   de   procedimientos   o   módulos.   El  
proceso   de   diseñar   traduce   los   requerimientos   en   una   representación   del   software   que  
permite  evaluar  su  calidad  antes  de  iniciar  la  etapa  de  codificación.    
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
17    
Muchos   procesos   de   desarrollo   de   software   implementan   la   etapa   de   diseño   como   una  
actividad  fundamental.  Uno  de  los  procesos  de  desarrollo  más  conocidos  es  el  Proceso  
Unificado  de  Rational.  
Para  RUP,  la  etapa  de  diseño  es  actividad  extensa  y  se  encuentra  integrada  a  la  etapa  de  
análisis.  El  propósito  de  esta  etapa  es:(IBM,  2006)  
•   Transformar  los  requerimientos  en  el  diseño  de  lo  que  el  sistema  debe  hacer  
•   Desarrollar  una  arquitectura  robusta  para  el  sistema  
•   Adaptar  el  diseño  para  integrarlo  al  ambiente  de  implementación  considerando  su  
desempeño  
Para  RUP  las  tareas  a  realizar  durante  el  análisis  y  diseño  son:  
•   Análisis  de  la  Arquitectura  
•   Evaluación  de  la  viabilidad  de  pruebas  de  concepto  de  la  arquitectura  
•   Diseño  de  cápsulas  
•   Diseño  de  clases  
•   Pruebas  de  concepto  de  construcción  de  la  arquitectura    
•   Diseño  de  la  base  de  datos  
•   Definir  contexto  del  sistema  
•   Descripción  de  la  distribución  
•   Descripción  de  la  arquitectura  de  ejecución  
•   Diseño  de  elementos  de  prueba  
•   Diseño  de  interfaces  de  usuario  
•   Identificación  de  elementos  de  diseño  
•   Identificación  de  mecanismos  de  diseño  
•   Identificación  de  servicios  
•   Incorporación  de  elementos  de  diseño  existentes  
•   Análisis  de  operaciones  
•   Diseño  de  operaciones  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
18    
•   Prototipos  de  interface  de  usuarios  
•   Revisión  de  la  arquitectura  
•   Revisión  de  el  diseño  
•   Diseño  de  servicios  
•   Especificación  de  migración  de  datos  
•   Diseño  de  subsistemas  
•   Análisis  y  diseño  de  casos  de  uso  
  
Figura  4  Flujo  de  trabajo  de  la  etapa  de  análisis  y  diseño  de  RUP  (IBM,  2006)  
El  resultado  de  la  etapa  de  diseño  es  la  obtención  de  modelos.  Estos  modelos  pueden  ser  
descritos  utilizando  lenguajes  de  modelado  de  propósito  general  como  el  UML  o  lenguajes  
de  modelado  de  dominio  específico.  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
19    
Un   modelo   es   la   representación   simplificada   de   la   realidad,   que   generalmente   utiliza  
símbolos  para  significar  a  los  elementos  reales,  y  por  medio  de  un  proceso  de  abstracción,    
distinguir  las  partes  esenciales  de  una  situación  ignorando  las  prescindibles,  con  el  objeto  
de  entender  con  mayor  claridad  cómo  funciona,  descubrir  relaciones,  reflexionar  de  una  
manera  sencilla  acerca  de  su  operación  y  en  general  disminuir  el  grado  de  complejidad.  
(Parra,  2000)  
La   tarea   de   diseñar   puede   estar   guiada   por   diferentes   enfoques   o   técnicas   como   la  
Arquitectura   Dirigida   por   Modelos:   MDA   (por   sus   siglas   en   inglés:   Model   Driven  
Architecture).  
MDA  busca  alinear  el  diseño  contra  las  aplicaciones  resultantes  en  distintos  dominios.  Los  
modelos  diseñados  bajo  este  enfoque  pueden  ser  elaborados  con  lenguajes  de  propósito  
general  como  el  UML  o  lenguajes  de  dominio  específico.  
  
Figura  5  Arquitectura  Dirigida  por  Modelos  
El   MDA   tiene   como   promesa   permitir   la   definición   de   modelos   de   datos   y   aplicaciones  
entendibles   por   la   máquina   los   cuales   permiten   mantener   durante   largo   tiempo   la  
flexibilidad  de:  (Mukerji  &  Miller,  2003)  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
20    
•   Implementación.  Una  nueva  infraestructura  de  implementación  puede  ser  integrada  
o  integrada  por  diseños  existentes  
•   Integración:   Se   puede   automatizar   la   integración   de   datos   a   nuevas  
infraestructuras.  
•   Mantenimiento:  La  disponibilidad  de  diseños  entendibles  por  la  máquina  da  a  los  
desarrolladores   acceso   directo   a   la   especificación   del   sistema   haciendo   su  
mantenimiento  mucho  más  simple  
•   Pruebas  y  simulación.  Los  modelos  desarrollados  pueden  ser  usados  para  generar  
código,   lo   que   equivale   a   validarlos   contra   los   requerimientos,   probar   varias  
infraestructuras   y   usarlos   directamente   para   simular   el   comportamiento   de   un  
sistema  que  está  siendo  diseñado  
Un   DSM   está   fuertemente   ligado   al   enfoque   MDA   ya   que   a   través   de   los   modelos  
diseñados,  es  posible  generar  código  de  aplicación,  cumpliendo  así  lo  que  este  enfoque  
propone.  
Los  modelos  generados  utilizando  un  DSM  realizan  los  siguientes  cambios  o  mejores  en  el  
proceso  de  diseño:  (Kelly  &  Tolvanen,  2008)  
•   El  control  de  versiones  de  una  aplicación  puede  llevarse  desde  los  modelos  y  no  
exclusivamente  desde  el  código  
•   Disminución  del  tiempo  de  pruebas  de  la  aplicación  anticipándola  desde  la  etapa  de  
diseño  
•   La  actividad  de  depuración  puede  realizarse  desde  el  diseño  
•   Mejoran  la  comunicación  ya  que  expresan  los  conceptos  importantes  del  dominio  
sin  separarla  de  la  implementación  
•   Se   convierten   en   elementos   de   entrada   para   diferentes   artefactos,   pudiendo  
utilizarse   estos   modelos   para   obtener   por   ejemplo:   documentación,   casos   de  
prueba  y  configuración  de  los  datos  
En  equipos  de  desarrollo  pequeños  no  siempre  existe  una  figura  de  arquitecto  de  software  
o  diseñador  cuya  función  sea  la  de  generar  los  modelos  de  diseño  de  las  aplicaciones.  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
21    
Esta   actividad   es   frecuentemente   cubierta   por   los   mismos   desarrolladores   o  
programadores.  
  
1.3.   Lenguajes  y  modelado  visual  
Los  lenguajes  visuales  permiten  manipular  elementos  de  programación  gráficamente  en  
lugar  de  especificarlos  textualmente.  (Wikipedia,  2007b)  
Pueden  clasificarse  de  acuerdo  al  tipo  de  expresión  visual  utilizada  en:  lenguajes  basados  
en  íconos,  lenguajes  basados  en  formularios  y  lenguajes  de  diagramas.  
Los   lenguajes   visuales   proporcionan   elementos   de   íconos   o   gráficos   que   pueden   ser  
manipulados  por  los  usuarios  de  manera  interactiva  de  acuerdo  a  un  conjunto  de  reglas  
especificadas.  
La   definición   de   patrones   de   características   puede   ser   la   base   de   usabilidad   entre   los  
patrones  identificados  por  el  usuario  y  aquellos  que  son  administrados  por  el  sistema.  Un  
lenguaje  visual  dinámico  es  un  conjunto  ordenado  de  sentencias  visuales  caracterizadas  
por   la   presencia   de   elementos   comunes(Bottoni,   Chang,   Costabile,   Levialdi,   &   Mussio,  
2002).   Se   pueden   especificar   las   transformaciones   posibles   especificando   formalmente  
este  proceso.  
El  modelado  visual  es  el  uso  de  semántica,  notaciones  de  diseño  textuales  y  gráficas  para  
describir  diseños  de  software.  Una  notación  como  el  UML,  permite  establecer  un  nivel  de  
abstracción,   mientras   se   mantienen   reglas   de   sintaxis   y   semántica.   El   modelado   visual  
proporciona   un   medio   de   comunicación   entre   el   equipo   de   trabajo   para   la   revisión   del  
diseño,   su   justificación   y   la   determinación   de   las   bases   de   su      implementación   sin  
ambigüedades.(IBM,  2006)  
1.3.1.   UML  
El   Lenguaje   de   Modelado   Unificado   es   un   lenguaje   de   modelado   visual   orientado   a  
objetos(Rumbaugh,   Jacobson,   &   Booch,   1998).   EL   UML   es   el   sucesor   de   métodos   y  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
22    
diseños   orientados   a   objetos   que   surgió   a   finales   de   los   80’s.   Fue   creado   por   Booch,  
Rumbaugh  y  Jacobson.  En  la  actualidad  es  un  estándar  del  Grupo  de  Administración  de  
Objetos:   OMG   (por   sus   siglas   en   inglés:   Object   Management   Group)(Fowler,   Scott,  
González  V,  &  Morales  Peake,  1999).  Contiene  abstracciones  para  muchos  conceptos  de  
modelado  orientado  a  objetos  estándar.  Entre  ellos  se  encuentran  los  diagramas  de  clase,  
diagramas   de   máquinas   de   estado,   diagramas   de   casos   de   uso   y   diagramas   de  
secuencia(Booch,   Rumbaugh,   &   Jacobson,   1999).   Con   estos   diagramas   los   usuarios  
pueden  describir  la  arquitectura,  diseño  y  aún  la  implementación  de  sistemas  de  software.  
El   UML   se   encuentra   fuertemente   integrado   el   proceso   de   desarrollo   iterativo  
implementado  por  RUP.  
El  UML  2.0  define  en  la  actualidad  trece  tipos  de  diagramas  divididos  en  tres  categorías:  la  
estructura   estática   de   la   aplicación,   tipos   generales   de   comportamiento   y   aspectos   de  
interacción.(OMG,  2007b)  
•   Diagramas  de  estructura:  Diagrama  de  clases,  diagramas  de  objetos,  diagrama  de  
componentes,  diagrama  de  composición  de  la  estructura,  diagrama  de  paquetes  y  
diagrama  de  implementación.  
•   Diagramas  de  comportamiento:  diagrama  de  casos  de  uso,  diagramas  de  actividad  
y  diagrama  de  máquina  de  estados.  
•   Diagramas  de  interacción:  derivados  de    los  diagramas  de  comportamiento  incluyen  
el   diagrama   de   secuencia,   diagrama   de   comunicación,   diagrama   de   tiempo   y  
diagrama  general  de  interacción  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
23    
  
Figura  6  Estructura  de  alto  nivel  de  UML  2.1.1  (OMG,  2007b)  
UML  fue  diseñado  para  ser  un  lenguaje  gráfico  de  modelado  de  propósito  general.  Esto  le  
permite   especificar   la   mayoría   de   los   sistemas   basados   en   objetos   o   componentes.  
Cuando  el  UML  no  permite  expresar  los  conceptos  de  un  dominio  específico  o  se  desea  
restringir  o  especializar  sus  constructores  propios  se  puede  definir  un  lenguaje  de  dominio  
específico.  Ante  esta  situación  se  puede  definir  un  lenguaje  totalmente  nuevo  o  extender  el  
propio   UML,   especializando   algunos   de   sus   conceptos   y   extendiendo   otros   pero  
respetando   la   semántica   original.   Para   extender      el   lenguaje   UML   existen   una   serie   de  
mecanismos  llamados  perfiles  de  UML.  (Fuentes  &  Vallecillo,  2004)  
1.3.2.   Lenguajes  de  dominio  específico  
Un   lenguaje   de   dominio   específico   o   DSL   (Por   sus   siglas   en   inglés:   Domain-­Specific  
Language)  es  un  lenguaje  que  permite  a  través  de  notaciones  apropiadas  y  abstracciones,  
expresar  un  dominio  de  problemas  específico.(Deursen,  Klint,  &  Visser,  2000)  
Un  lenguaje  de  dominio  específico  está  definido  por  un  modelo  del  dominio.  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
24    
Ejemplos  de  DSL  son:     
•   Diagramas  entidad  –  relación(Chen,  1976)  
•   BPEL  -­    Business  Process  Execution  Language(Alves  et  al.,  2007)  
•   CSS  -­  Cascading  Style  Sheets(Bos,  Lie,  Lilley,  &  Jacobs,  1998)  
•   SQL  -­  Structured  Query  Language(Date  &  Darwen,  1993)  
Muchos  lenguajes  son  de  un  dominio  específico  más  que  de  propósito  general.(Mernik  &  
Sloane,  2005)  
Existen  otros  nombres  para  un  DSL(Wikipedia,  2007a)  como:  
•   Pequeños  lenguajes  
•   Macros  
•   Lenguajes  de  aplicación  
•   Lenguajes  orientados  a  problemas  
Adoptar  un  DSL  implica  riesgos  y  oportunidades(Deursen  et  al.,  2000).  Entre  los  beneficios  
tenemos:  
•   Expresar  en  un  nivel  de  abstracción  el  dominio  del  problema  
•   Son  concisos,  autodocumentados  y  reutilizables  para  diferentes  propósitos  
•   Aumentan  la  productividad,  lectura,  mantenimiento  y  portabilidad  
•   Describe  un  dominio  de  conocimiento,  conservándolo  y  reutilizándolo  
Las   herramientas   de   cómputo   que   implementan   un   DSL   capturan   especificaciones   en  
forma   de   modelos   de   dominio.   Comúnmente   pueden   generar,   configurar   e   integrar  
determinados   componentes   de   aplicaciones.   Estos   ambientes   traducen   el   diseño  
verificado  mediante  un  modelado  formal  a  una  variedad  de  artefactos  que  pueden  incluir  
código,  esquemas  de  bases  de  datos  y  configuraciones.(Ledeczi  et  al.,  2001).  La  intención  
de  crear  un  DSL  es  llegar  a  la  generación  automática  de  código.  
Se  pueden  distinguir  5  fases  para  el  desarrollo  de  un  DSL:  (Mernik  &  Sloane,  2005)  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
25    
•   Decisión,    
•   análisis,    
•   diseño,    
•   implementación  e    
•   implantación  
  
Figura  7  Fases  para  el  desarrollo  de  un  DSL  
En   el   modelado   de   un   dominio   específico   se   pueden   distinguir   al   menos   cuatro  
direcciones(Luoma,  Kelly,  &  Tolvanen,  2004):  
•   Conceptos   del   desarrollador   o   del   experto   del   dominio.   Cuando   el   lenguaje   es  
modelado  por  un  experto  es  más  fácil  de  entender.  
•   Salida  generada.  Definición  de  la  estructura  de  código  requerida.  
•   Representatividad  del  sistema  construido.  El  modelo  debe  entenderse  claramente  
cuando  es  visto  por  el  usuario  final.  
•   Espacio  de  variabilidad.  Definiciones  de  lenguajes  flexibles  que  puedan  extenderse  
para  ser  empleadas  en  futuras  variantes.  
Para  elaborar  un  DSL  se  debe  realizar  un  análisis  de  dominio  formal.  La  salida  de  esta  
etapa  es  un  modelo  de  dominio  que  consiste  de(Mernik  &  Sloane,  2005):  
•   Una  definición  de  dominio  que  describe  el  alcance  del  dominio  
•   Terminología  del  dominio  (vocabulario,  ontología)  
Desición de
elaboración
Análisis del
dominio Diseño Implementación Implantación
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
26    
•   Descripciones  de  los  conceptos  del  dominio  
•   Modelos  característicos  que  describen  las  constantes  y  variables  de  los  conceptos  
del  dominio  y  sus  interdependencias.  
El   tiempo   que   un   desarrollador   necesita   para   aprender   un   lenguaje   de   modelado   de  
propósito  general  es  mayor  que  el  que  requiere  para  aprender  un  DSL.  Un  DSL  representa  
de   manera   más   cercana   el   dominio   que   se   desea   modelar.   En   Nokia   por   ejemplo,   el  
conocimiento  del  dominio  contenido  en  su  DSL  produjo  una  disminución  en  la  curva  de  
aprendizaje   para   nuevos   empleados.   Ello   redujo   el   inicio   de   la   productividad   de   los  
desarrolladores  de  seis  meses  a  2  semanas.(Kelly  &  Tolvanen,  2000)  
1.3.3.   Modelado  de  dominio  específico  
El   Modelado   de   dominio   específico:   DSM   (Por   sus   siglas   en   inglés:   Domain   Specific  
Modeling)  comúnmente  es  utilizado  como  sinónimo  de  DSL.  Sin  embargo  un  DSL  puede  
hacer   traducciones   entre   lenguajes   textuales   como   es   el   caso   de   Ruby.   (Freeze,  
2006)(Cuadrado  &  Molina,  2007).    
El   DSM   tiene   como   beneficio   principal   una   mayor   alineación   entre   el   modelo   de   la  
aplicación  y  el  código  generado.(Kelly  &  Tolvanen,  2008)  
Los  DSM  están  más  relacionados  a  herramientas  visuales  de  modelado  que  soportan  la  
implementación  de  un  DSL.  
Actualmente   muchas   empresas   apoyan   la   generación   de   DSM   y   su   implementación   a  
través  de  sus  herramientas.  Tal  es  el  caso  de  Microsoft,  IBM,  MetaCase  y  Eclipse.  
El   modelado   de   dominio   específico   requiere   principalmente   de   tres   cosas:   (Kelly   &  
Tolvanen,  2008)  
•   Un  lenguaje  de  modelado  de  dominio  específico  
•   Un  generador  de  código  de  dominio  específico  
•   Un  marco  o  herramientas  de  dominio  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
27    
  
Figura  8  Función  del  DSL  
Los   generadores   de   código   asociados   a   los   DSM   surgen   como   una   evolución   de   los    
lenguajes  de  cuarta  generación.  
1.3.4.   Perfiles  de  UML  
Un  perfil  de  UML  es  una  opción  para  definir  un  DSL  extendiendo  la  capacidad  del  UML.  
Los  perfiles  de  UML  permiten  la  definición  de  estereotipos  los  cuales  son  extensiones  de  
diseño   de   elementos   UML   que   permiten   contar   con   elementos   UML   con   información  
adicional.(Leroux  et  al.,  2006)  
La  siguiente  imagen  muestra  la  estructura  de  los  elementos  utilizados  para  definir  un  perfil  
de  UML  proporcionados  por  la  especificación  del  estándar.  
Un  perfil  de  UML  es  una  especificación  que  hace  una  o  más  de  las  siguientes  cosas(OMG,  
2007a)(OMG,  2007b):    
•   Identificar  un  subconjunto  de  el  metamodelo  UML  
•   Especificar  un  conjunto  de  restricciones  para  elementos  bien  formados  mediante  el  
Lenguaje  de  Restricción  de  Objetos  de  UML:  OCL  (Por  sus  siglas  en  inglés  Object  
Constraint  Language)  (OMG,  2006)  
•   Especificar   elementos   estándar   mediante   instancias   de   estereotipos   de   UML,  
valores  etiquetados  o  restricciones  
•   Especificar  la  semántica  de  los  elementos  del  perfil  expresada  en  lenguaje  natural  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
28    
•   Especificar  los  elementos  comunes  del  modelo  en  términos  del  perfil  
  
  
Figura  9  Elementos  definidos  en  el  paquete  perfil      (OMG,  2007a)  
El  OCL  puede  ser  usado  para  diferentes  propósitos:(OMG,  2006)  
•   Como  un  lenguaje  de  consulta  
•   Para  especificar  invariabilidad  de  clases  y  tipos  en  el  modelo  de  clases  
•   Para  especificar  tipos  invariantes  para  estereotipos  
•   Para  describir  pre  y  post  condiciones  en  operaciones  y  métodos  
•   Para  describir  guardas  
•   Para  especificar  destinos  para  mensajes  y  acciones  
•   Para  especificar  restricciones  en  operaciones  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
29    
•   Para  especificar  reglas  de  derivación  de  atributos  para  cualquier  expresión  sobre  un  
modelo  UML  
Para  definir  un  perfil  debe  contarse  con  un  metamodelo  previo  que  muestre  los  elementos  
del  dominio  y  sus  relaciones.  
Un  metamodelo  es  un  modelo  que  define  otro  modelo.  (Leroux  et  al.,  2006)  
Un  perfil  se  compone  de:    
•   La  declaración  de  un  paquete  perfil  de  UML.  
•   Tipos   primitivos.   Son   utilizados   en   los   estereotipos   como   etiquetas   definidas.  
Pueden  estar  predefinidas  en  una  librería  del  dominio  específico  referenciada  por  el  
perfil   o   pueden   importarse   de   otras   librerías   como   la   del   plugin   de   Eclipse    
org.Eclipse.uml2.uml.resources.  Por  ejemplo  “texto”,  “entero”,  “booleano”.  
•   Enumeraciones.  Es  un  tipo  de  dato  que  permite  definir  cualquier  número  de  valores  
nombrados  definidos  por  el  usuario.  Por  ejemplo  “Tipo  de  inmueble”.  
•   Valores  etiquetados(en  inglés:  enumeration literals).  Un  valor  de  dato  definido  por  el  
usuario   para   ser   usado   en   una   enumeración.   Por   ejemplo   “condominio”,  
“departamento”,  “residencia”  
•   Estereotipos.  Definen  el  cómo  puede  ser  extendida  una  metaclase,  permitiendo  en  
lugar   de   esta   el   uso   de   la   notación   o   terminología   del   dominio.   Cada   estereotipo  
puede  extender  una  o  más  clases  a  través  de  extensiones  como  parte  de  un  perfil.  
Por  ejemplo  <<inmueble>>,  <<constructor>>,<<comprador>>  
•   Generalizaciones   de   estereotipos.   Como   en   las   clases   los   estereotipos   pueden  
estar   involucrados   en   generalizaciones.   Una   generalización   es   una   relación  
taxonómica   entre   un   clasificador   específico   y   un   clasificador   mas   general.   Cada  
clasificador  específico  hereda  las  características  del  clasificador  general  pudiendo  
agregar  sus  características  propias.    
•   Propiedades   de   estereotipos.   Como   en   las   clases   los   estereotipos   pueden   tener  
propiedades   o   atributos.   Cuando   un   estereotipo   es   aplicado   a   un   elemento   del  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Diseño  de  software  
30    
modelo,   los   valores   de   las   propiedades   pueden   ser   referenciados   como   valores  
etiquetados  
•   Referencias  a  metaclases.  Un  perfil  es  una  forma  restricta  de  un  metamodelo  que  
siempre  debe  estar  referenciado  a  un  metamodelo  (por  ejemplo  UML).  Un  perfil  no  
puede   ser   usado   sin   la   referencia   a   un   metamodelo,   este   define   el   límite   para  
extender  las  metaclases  de  un  metamodelo  de  referencia  vía  estereotipos.  
•   Extensiones.  Son  usadas  para  indicar  que  las  propiedades  de  las  metaclases  son  
extendidas   a   través   de   estereotipos   y   permiten   de   manera   flexible   aplicar   dichos  
estereotipos  a  los  elementos.
A medida que se desea mejorar el modelado acercándolo a las características propias del dominio, el
diseño de un DSL se vuelve recomendable.
Tanto los perfiles de UML como el UML están basados en el MOF estándar definido por el OMG.
Existen   varios   ejemplos   de   perfiles   de   UML   empleados   en   la   actualidad.   Entre   ellos  
tenemos:  
•   Lenguaje   de   modelado   de   sistemas:   SysML   (por   sus   siglas   en   inglés:Systems  
Modeling  Language)(Partners,  2005)  
•   Perfil  de  UML  para  CORBA  
•   Perfil  UML  para  distribución  de  datos  
•   Perfil  de  UML  para  el  modelado  y  análisis  de  sistemas  embebidos  y  en  tiempo  real:  
MARTE   (por   sus   siglas   en   inglés:   Modeling   and   Analysis   of   Real-­time   and  
Embedded  Systems)  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Herramientas  de  modelado  
31    
  
  
  
  
  
  
  
  
2.  Capítulo:  Herramientas  de  modelado  
En   esta   sección   se   presenta   la   revisan   las  
características   de   las   herramientas   para  
implementar  lenguajes  de  modelado  de  dominio  
específico.  Las  herramientas  que  se  presentan  
son:   MetaEdit+,   Microsoft   DSL   Tools   y   el  
proyecto  de  modelado  de  Eclipse  
     
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Herramientas  de  modelado  
32    
Introducción  
Existen  en  la  actualidad  varias  herramientas  para  modelado  visual  capaces  de  utilizar  un  
DSL.  Entre  las  más  importantes  tenemos:    
•   MetaEdit+,    
•   MS  DSL  Tool,    
•   Eclipse  Modeling  Framework.  
Una   herramienta   no   es   suficiente   para   la   implementación   de   un   DSL.   Debe   contarse  
previamente  con  el  modelo  de  domino  o  metamodelo  para  un  trabajo  completo.  
2.1.   MetaEdit+  
MetaEdit+  es  una  herramienta  de  la  marca  metaCASE  que  permite  diseñar  lenguajes  de  
modelado  y  generación  de  código  para  automatizar  el  desarrollo  de  software.  Fue  creada  
en  el  año  de  1995.  
En   Metaedit+,   el   lenguaje   de   metamodelado   se   denomina   GOPPRR   (por   sus   siglas   en  
inglés:   Graph,   Object,   Property,   Port,   Relationship   y   Role),   que   son   los   meta-­tipos   que  
proporciona  para  describir  los  lenguajes  de  modelado.(Gomez  &  Sanchez,  )  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Herramientas  de  modelado  
33    
  
Figura  10  Herramienta  MetaEdit+  
Esta   herramienta   permite   representar   modelos   de   manera   textual   y   gráfica.   Dichos  
metamodelos  y  los  mismos  modelos  son  almacenados  en  un  repositorio.  
El  método  de  desarrollo  de  esta  herramienta  es  definir  conceptos,  propiedades  asociadas  
y  reglas.  
A   diferencia   de   otras   herramientas,   el   entorno   de   trabajo   que   utiliza   no   diferencia  
claramente  los  conceptos  de  sintaxis  abstracta  y  sintaxis  concreta.  De  esta  forma,  cuando  
se   define   un   nuevo   elemento   del   metamodelo   y   sus   propiedades,   se   diseña   también   el  
aspecto  visual  del  mismo.  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Herramientas  de  modelado  
34    
  
Figura  11  Arquitectura  de  MetaEdit+  
Esta  herramienta  se  ha  utilizado  para  implementar  más  de  100  técnicas  de  modelado  y  
docenas  de  código  y  reportes.  
Esta  herramienta  ha  sido  utilizada  por  Nokia  para  personalizar  métodos  de  desarrollo  de  
sistemas  de  administración  de  redes  y  sus  teléfonos  móviles.  Deloitte  &  Touche  utilizaron  
metaCASE   para   implementar   una   herramienta   que   soporta   su   metodología   orientada   a  
objetos.  
2.2.   Microsoft  DSL  Tools  
Esta   herramienta   es   una   extensión   del   Visual   Studio   que   permite   la   construcción   de  
diseñadores  gráficos  y  la  generación  de  código  usando  una  notación  diagramática  para  
dominio  específico.  DSL  Tools  incluye  las  siguientes  herramientas:(Cook,  Jones,  Kent,  &  
Wills,  2007)  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Herramientas  de  modelado  
35    
•   Un   asistente   de   proyectos   con   plantillas   de   soluciones   que   ayudan   a   iniciar   el  
desarrollo  de  un  DSL  del  usuario  
•   Un  diseñador  gráfico  para  crear  y  editar  la  definición  del  DSL  
•   Un  motor  de  validación  para  asegurar  que  la  definición  del  DSL  está  bien  formada  
•   Un   generador   de   código   que   toma   la   definición   del   DSL   como   entrada   para  
producir  código  
Para   liberar   la   herramienta   se   debe   empaquetar   la   solución,   la   cual   solo   puede   ser  
ejecutada  en  el  entorno  propietario  de  Visual  Studio.  
Microsoft   DSL   Tools   permiten   definir   lenguajes   gráficos   usando   sintaxis   abstracta  
(metamodelo)  en  una  notación  propietaria.  La  base  de  dichos  modelos  es  el  XML  como  
mecanismo  de  persistencia.  
  
Figura  12  IDE  de  Microsoft  VisualStudio  con  DSL  Tool  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Herramientas  de  modelado  
36    
EL   desarrollo   de   un   DSL   en   Visual   Studio   debe   tener   las   siguientes   características:  
notación,   modelo   del   dominio,   generación   de   artefactos,   serialización   e   integración   con  
Visual  Studio.  
  
Figura  13  Arquitectura  DSL  Tools  
Esta  herramienta  genera  un  DSL  a  través  de  un  asistente  el  cual  nos  permite  elegir  una  
plantilla  base  que  puede  ser  personalizada.  
El   resultado   son   dos   proyectos   enlazados   que   permiten   definir   el   DSL   y   construir   la  
interface  gráfica  del  usuario.(Gomez  &  Sanchez,  )  
  
Figura  14  Proyectos  de  Visual  Studio  al  crear  un  DSL  
Desarrollo del DSL
(Definición del modelo)
DomainModel.dsldm
Modelodel
dominio
Notación
gráficaycajade
herramienta
Exploradory
ventanade
propiedades
Validación
Serialización
Implantación
DSL Designer
(Desarrollo de la GUI)
Designer.dsldd
Construccion
delmodelode
dominio
Significadodel
modelo
Progamación
usandoDSL
API
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Herramientas  de  modelado  
37    
2.3.   Proyecto  de  modelado  de  Eclipse  
Eclipse  es  una  organización  que  implementa  modelos,  marcos  de  trabajo  y  herramientas  
libres.  
Entre  los  muchos  proyectos  con  los  que  cuenta,  se  encuentra  el  proyecto  de  modelado  de  
Eclipse:  EMP  (por  sus  siglas  en  inglés:  Eclipse  Modeling  Project).  Este  proyecto  se  centra  
en   el   desarrollo   de   herramientas   de   modelado   y   la   generación   automática   de   código.  
Empresas   importantes   como   IBM,   Borland   y   Sun   son   algunos   de   los   principales  
promotores  de  este  proyecto.  
En  Eclipse  para  definir  un  DSL  puede  usarse  un  Metamodelo  generado  en  EMF  (por  sus  
siglas  en  inglés:  Eclipse  Modeling  Framework).  
El   modelo   fuente   de   un   proyecto   EMF   contiene   la   descripción   de   los   datos   de   una  
aplicación  incluyendo:  objetos  y  sus  atributos,  relaciones,  operaciones  y  restricciones.  
El  EMF  permite  generar  código  desde  meta-­modelos  definidos  como  diagramas  de  clase  
de   UML   usando   plugins   apropiados.   El   EMF   puede   utilizarse   como   base   para   la  
especificación  de  lenguajes  visuales.  (Ehrig  et  al.,  2005)  
Los   modelos   de   dominio   o   metamodelos   (modelos   que   representan   modelos)   pueden  
generarse  a  través  de  las  siguientes  opciones:  
•   Interfaces  de  clases  en  Java  
•   Modelo  de  clases  de    Rational  Rose  
•   Documento  XML  
•   Modelo  ecore  
El   EMF   (Budinsky,   2003)   ofrece   además   de   la   descripción   de   un   metamodelo,  
herramientas   para   importar   y   generar   código   de   modelos   fuente   en   varios   formatos,  
ofreciendo  un  camino  simple  y  práctico  para  el  modelado  y  metamodelado.  
Una   vez   que   se   cuenta   con   el   modelo   del   dominio   se   puede   utilizarse   el   GEF   para   la  
generación  de  una  herramienta  visual.  (Moore,  2004)  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Herramientas  de  modelado  
38    
  
Figura  15  Analogía  entre  Eclipse  EMF  y  GMF  
Para  facilitar  la  generación  de  herramientas  gráficas  basadas  en  un  modelo  de  dominio,  
Eclipse  creo  el  framework  de  modelado  gráfico:  GMF  (por  sus  siglas  en  inglés:  Graphical  
Modeling  Framework).  El  objetivo  de  este  framework  es  servir  como  un  puente  amigable  al  
usuario  entre  el  EMF  y  el  GEF  para  la  generación  de  editores  visuales.  
  
Figura  16  Proceso  de  generación  de  un  modelador  con  Eclipse  GMF  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Herramientas  de  modelado  
39    
2.4.   Elección  de  la  herramienta  
Para  el  desarrollo  de  la  herramienta  de  modelado  visual  presentado  en  esta  tesis  se  ha  
elegido  a  Eclipse  debido  a:  
•   Utiliza  estándares  abiertos  de  modelado  
•   No  requiere  costos  de  licenciamiento  
•   El  componente  de  modelado  es  fácilmente  distribuible  mediante  plugins  
•   La  creación  de  herramientas  visuales  es  altamente  configurable  
•   Soporta  diferentes  sistemas  operativos  
•   La   empresa   IBM   propietaria   de   Lotus   Notes   apoya   fuertemente   a   la   fundación  
Eclipse.   IBM   está   migrando   sus   clientes   Lotus   Notes   a   esta   plataforma   lo   que  
permitirá   en   trabajos   futuros   integrar   las   actividades   de   diseño   y   codificación   de  
aplicaciones  en  un  mismo  entorno  
  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Plataforma  Lotus  Notes  
40    
  
  
  
  
  
  
  
  
  
3.  Capítulo:  Plataforma  Lotus  Notes  /  Domino  
En  esta  sección  se  describen  las  características  
de  la  plataforma  colaborativa  IBM  Lotus  Notes  /  
Domino  
     
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Plataforma  Lotus  Notes  
41    
3.1.   Breve  historia  
La   plataforma   IBM   Lotus   Domino/Notes   permite   el   desarrollo   e   implementación   de  
aplicaciones  colaborativas  empresariales.  
Entre   sus   características   más   destacables   se   encuentra   el   gran   número   sistemas  
operativos  sobre  los  que  puede  ejecutarse  como:  Windows,  IBM  OS,  Mac,  Novell,    UNIX  
(AIX   de   IBM,   Solaris   de   Sun,   UX   de   HP   y   Linux).   Ello   permite   a   los   programadores   la  
facilidad  de  desarrollar  aplicaciones  independientemente  de  la  plataforma.(Plaza,  2000)  
Lotus  Notes  está  fuertemente  orientado  al  desarrollo  de  aplicaciones  colaborativas  donde  
interactúen  personas,  información  y  procesos.  
Lotus  almacena  de  manera  integrada  los  datos  y  elementos  de  diseño  (estructura  de  los  
datos   y   código   de   la   aplicación)(IBM,   2005a)utilizando   un   ítem   básico   llamado   nota   (en  
inglés   Notes)   de   ahí   el   origen   de   su   nombre   de   marca.   Todos   estos   elementos   se  
encuentran  contenidos  en  una  sola  base  de  datos  de  extensión  “nsf”.    
  
Figura  17  Composición  de  una  BDs  Notes  
3.2.   Elementos  de  diseño  
Estos  elementos  de  diseño  son  utilizados  para  codificar  la  funcionalidad  de  la  aplicación.  
Los   elementos   de   diseño   pueden   contener   opcionalmente   acciones,   eventos   y   otros  
elementos  de  diseño.  Las  acciones  y  eventos  pueden  contener  código  en  alguno  de  los  
lenguajes  soportados  como:  Java,  JavaScript,  LotusScript,  comandos  y  fórmulas.  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Plataforma  Lotus  Notes  
42    
Un   elemento   de   diseño   puede   contener   al   mismo   tiempo   la   lógica   de   la   aplicación  
(funcionalidad),  la  interfaz  del  usuario  y  la  estructura  de  datos).  
  
Figura  18  Elementos  de  diseño  de  Lotus  Notes  
Lotus  proporciona  mecanismos  para  exportación  e  importación  no  solo  de  los  datos  sino  
de   la   estructura   de   sus   aplicaciones.   Para   ello   proporciona   una   estructura   XML  
estandarizada  llamada  Domino  en  DTD  (por  sus  siglas  en  inglés:  Domino  Document  Type  
Definitionk).(IBM,  2005b)  
3.3.   Funcionalidades  y  características  
Lotus  Notes  se  ha  consolidado  como  una  plataforma  colaborativa  de  desarrollo  rápido  de  
aplicaciones:  RAD  (por  sus  siglas  en  inglés:  Rapid  Application  Develop).  Ello  le  permite  
desarrollar  fácilmente  aplicaciones  simples.  
Elementos de diseño
Framesets
Pages
Forms
Views
Folders
Agents
WebServices
Outlines
SubForms
Fields
Columns
Actions
ScriptLibraries
Images
Files
Applets
StyleSheets
Dataconnections
Icon
Using
About
DatabaseScript
Navigators
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Plataforma  Lotus  Notes  
43    
  
Figura  19  Funciones  y  características  de  la  plataforma  Notes/Domino  
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.  
3.4.   Productos  de  la  plataforma  
Debido  a  su  aceptación  en  el  mercado,  facilidad  de  integración  y  servicios  integrados,  IBM  
ha  extendido  las  capacidades  originales  de  la  plataforma.  En  la  actualidad  bajo  la  marca  
Lotus  se  han  creado  e  integrado  gran  número  de  aplicaciones  y  servidores  especializados  
para   distintas   necesidades   como:   portales,   gestión   del   conocimiento,   administración  
documental  y  multimedia,  BalanceScorecard,  etc.  
  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Plataforma  Lotus  Notes  
44    
Categoría Productos
Applications - Desktop & Enterprise
Diseñadas para automatizar procesos
empresariales, incrementar la
productividad del personal y educación.
Productivity & Office Suites
•   Lotus 1-2-3
•   Lotus Organizer
•   Lotus SmartSuite
•   Lotus Symphony
Business Integration
Proporciona una infraestructura
centralizada para integración de
aplicaciones y automatización de procesos
de negocio
Application Integration and Connectivity
•   Lotus Connector for SAP Solutions
•   Lotus Enterprise Integrator for Domino
Other Business Integration
•   Workplace for SAP Software
Enterprise Content Management
Administración de contenido,
cumplimiento con optimización de
procesos de negocio y de contenido.
Content Management
•   Lotus Domino Document Manager
•   Lotus Quickr
•   Lotus Web Content Management
Messaging Applications
Proporcionan ambientes colaborativos
integrados basados en directorios, correo
electrónico y calendario de grupos.
Advanced Messaging
•   Lotus Complete Collaboration Express Starter Pack
•   Lotus Domino
•   Lotus Domino Express
•   Lotus Domino WebMail
•   Lotus iNotes
•   Lotus Notes
•   Lotus Notes Hosted Messaging
•   Lotus Symphony
•   Lotus Workflow
Mobile, Speech and Enterprise Access
Middleware que soporte el acceso a los
recursos de la empresa por clientes ricos,
comandos de voz y dispositivos.
Mobile and Enterprise Access
•   Lotus EasySync Pro
•   Lotus Expeditor
•   Lotus Mobile Connect
Organizational Productivity, Portals
and Collaboration
Proporciona mensajería instantánea,
conferencia Web, ambientes portales
colaborativos y ambientes basados en
roles.
Forms Management
•   Lotus Forms (Forms, Turbo)
Learning Software
•   Lotus Learning Management System
•   Workplace Collaborative Learning
Portals
•   IBM Business Process Accelerator
•   IBM Collaboration Accelerator
•   IBM Content Accelerator
•   IBM Dashboard Accelerator
•   IBM Enterprise Suite Accelerator
•   IBM Healthcare Accelerator
•   IBM Learning Accelerator
•   IBM Self-Service Accelerator
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Plataforma  Lotus  Notes  
45    
•   Lotus ActiveInsight
•   Lotus Workforce Management
•   Workplace for Business Controls and Reporting
•   Workplace for SAP Software
Enriches, extends and complements your SAP
investments
Real-time & Team Collaboration
•   Lotus Foundations Start
•   Lotus Quickr
•   Lotus Quickr Content Integrator
•   Lotus Sametime (Advanced, Entry, Standard, Unyte)
Social Software
•   Lotus Connections
Security
Protege  la  confidencialidad,  
integridad,  privacidad  y  
aseguramiento  de  sistemas  de  
información.
Security Compliance and Vulnerability Management
•   Lotus Protector for Mail Security
Software Development
Herramientas  de  desarrollo  de  SW  
para  construir  aplicaciones  y  soportar  
la  ejecución  de  procesos  de  
implantación
Analysis, Modeling, Design & Construction
•   Lotus Domino Designer
Mashup Development
•   Lotus Mashups
Tabla  1  Lista  de  productos  de  Lotus  por  categoría  
  
  
Tesis:  Modelado  Visual  de  Aplicaciones  Domino  
Lenguaje  de  modelado  de  dominio  específico  para  Lotus  Notes  /  Domino  
46  
  
  
  
  
  
  
  
  
4.  Capítulo:  Lenguaje  de  modelado  de  dominio  
específico  para  Lotus  Notes  /  Domino  
Se  presenta  el  proceso  realizado  durante  la  I+D  
para   la   definición   del   DSL   para   aplicaciones  
Lotus  Notes  
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino
Modelado Visual de Aplicaciones Lotus Notes Domino

Más contenido relacionado

Similar a Modelado Visual de Aplicaciones Lotus Notes Domino

Java j2me pre
Java j2me preJava j2me pre
Java j2me prejtk1
 
Java j2me prev
Java j2me prevJava j2me prev
Java j2me prevjtk1
 
Java A Tope J2 Me (Java 2 Micro Edition)
Java A Tope  J2 Me (Java 2 Micro Edition)Java A Tope  J2 Me (Java 2 Micro Edition)
Java A Tope J2 Me (Java 2 Micro Edition)Mauro Gomez Mejia
 
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...SANTIAGO PABLO ALBERTO
 
Deuda tecnica en Lean Startup.en.es.pdf
Deuda tecnica en Lean Startup.en.es.pdfDeuda tecnica en Lean Startup.en.es.pdf
Deuda tecnica en Lean Startup.en.es.pdfNicanor Sachahuaman
 
Tema1 software educativo y su utilidad
Tema1 software educativo y su utilidadTema1 software educativo y su utilidad
Tema1 software educativo y su utilidadadolfogcasanova
 
Algoritmos guia de maria hernandez
Algoritmos guia de maria hernandezAlgoritmos guia de maria hernandez
Algoritmos guia de maria hernandezjackie_18
 
Peer to Peer
Peer to PeerPeer to Peer
Peer to PeerTensor
 
Sistema de Computación Distribuida Peer to Peer
Sistema de Computación Distribuida Peer to PeerSistema de Computación Distribuida Peer to Peer
Sistema de Computación Distribuida Peer to PeerTensor
 
Rey manrique fernando_cctv_ip_inalambrica
Rey manrique fernando_cctv_ip_inalambricaRey manrique fernando_cctv_ip_inalambrica
Rey manrique fernando_cctv_ip_inalambricaGallegos Vazquez Omar
 
Desarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacionDesarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacionMarvin Arteaga
 

Similar a Modelado Visual de Aplicaciones Lotus Notes Domino (20)

Unidad3 fds
Unidad3 fdsUnidad3 fds
Unidad3 fds
 
Java j2me pre
Java j2me preJava j2me pre
Java j2me pre
 
Java j2me prev
Java j2me prevJava j2me prev
Java j2me prev
 
J2 me
J2 meJ2 me
J2 me
 
Java 2 micro edition
Java 2 micro editionJava 2 micro edition
Java 2 micro edition
 
Java A Tope J2 Me (Java 2 Micro Edition)
Java A Tope  J2 Me (Java 2 Micro Edition)Java A Tope  J2 Me (Java 2 Micro Edition)
Java A Tope J2 Me (Java 2 Micro Edition)
 
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
 
978 84-9839-226-5
978 84-9839-226-5978 84-9839-226-5
978 84-9839-226-5
 
Deuda tecnica en Lean Startup.en.es.pdf
Deuda tecnica en Lean Startup.en.es.pdfDeuda tecnica en Lean Startup.en.es.pdf
Deuda tecnica en Lean Startup.en.es.pdf
 
Vb net telematic
Vb net telematicVb net telematic
Vb net telematic
 
Tema1 software educativo y su utilidad
Tema1 software educativo y su utilidadTema1 software educativo y su utilidad
Tema1 software educativo y su utilidad
 
Algoritmos guia de maria hernandez
Algoritmos guia de maria hernandezAlgoritmos guia de maria hernandez
Algoritmos guia de maria hernandez
 
Peer to Peer
Peer to PeerPeer to Peer
Peer to Peer
 
Sistema de Computación Distribuida Peer to Peer
Sistema de Computación Distribuida Peer to PeerSistema de Computación Distribuida Peer to Peer
Sistema de Computación Distribuida Peer to Peer
 
Formacion Sociedad Globalizadora
Formacion Sociedad GlobalizadoraFormacion Sociedad Globalizadora
Formacion Sociedad Globalizadora
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 
Rey manrique fernando_cctv_ip_inalambrica
Rey manrique fernando_cctv_ip_inalambricaRey manrique fernando_cctv_ip_inalambrica
Rey manrique fernando_cctv_ip_inalambrica
 
Introduccion al desarrollo de software
Introduccion al desarrollo de softwareIntroduccion al desarrollo de software
Introduccion al desarrollo de software
 
Desarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacionDesarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacion
 
Trabahjo 10 1
Trabahjo 10 1Trabahjo 10 1
Trabahjo 10 1
 

Más de Hiriam Eduardo Perez Vidal

Portafolio de formación SAFe de Meta-Agility Partner Oficial
Portafolio de formación SAFe de Meta-Agility Partner OficialPortafolio de formación SAFe de Meta-Agility Partner Oficial
Portafolio de formación SAFe de Meta-Agility Partner OficialHiriam Eduardo Perez Vidal
 
Datos abiertos y participacion ciudadana - Conferencia Universidad Veracruzana
Datos abiertos y participacion ciudadana - Conferencia Universidad VeracruzanaDatos abiertos y participacion ciudadana - Conferencia Universidad Veracruzana
Datos abiertos y participacion ciudadana - Conferencia Universidad VeracruzanaHiriam Eduardo Perez Vidal
 
Administracion de Documentos Electronicos - Modelo de Gestión Documental MGD-RTA
Administracion de Documentos Electronicos - Modelo de Gestión Documental MGD-RTAAdministracion de Documentos Electronicos - Modelo de Gestión Documental MGD-RTA
Administracion de Documentos Electronicos - Modelo de Gestión Documental MGD-RTAHiriam Eduardo Perez Vidal
 
Seguridad - Modelo de Gestion Documental MGD-RTA
Seguridad - Modelo de Gestion Documental MGD-RTASeguridad - Modelo de Gestion Documental MGD-RTA
Seguridad - Modelo de Gestion Documental MGD-RTAHiriam Eduardo Perez Vidal
 
Interoperabilidad - Modelo de Gestion Documental de la RTA
Interoperabilidad - Modelo de Gestion Documental de la RTAInteroperabilidad - Modelo de Gestion Documental de la RTA
Interoperabilidad - Modelo de Gestion Documental de la RTAHiriam Eduardo Perez Vidal
 
Control of legal processes using collaborative tools
Control of legal processes using collaborative toolsControl of legal processes using collaborative tools
Control of legal processes using collaborative toolsHiriam Eduardo Perez Vidal
 
Modelado Visual de aplicaciones Lotus Domino - Tesis
Modelado Visual de aplicaciones Lotus Domino - TesisModelado Visual de aplicaciones Lotus Domino - Tesis
Modelado Visual de aplicaciones Lotus Domino - TesisHiriam Eduardo Perez Vidal
 
Cp 24 - Implementacion de una herramienta para service desk basada en ITIL
Cp 24 - Implementacion de una herramienta para service desk basada en ITILCp 24 - Implementacion de una herramienta para service desk basada en ITIL
Cp 24 - Implementacion de una herramienta para service desk basada en ITILHiriam Eduardo Perez Vidal
 

Más de Hiriam Eduardo Perez Vidal (9)

Portafolio de formación SAFe de Meta-Agility Partner Oficial
Portafolio de formación SAFe de Meta-Agility Partner OficialPortafolio de formación SAFe de Meta-Agility Partner Oficial
Portafolio de formación SAFe de Meta-Agility Partner Oficial
 
Datos abiertos y participacion ciudadana - Conferencia Universidad Veracruzana
Datos abiertos y participacion ciudadana - Conferencia Universidad VeracruzanaDatos abiertos y participacion ciudadana - Conferencia Universidad Veracruzana
Datos abiertos y participacion ciudadana - Conferencia Universidad Veracruzana
 
Administracion de Documentos Electronicos - Modelo de Gestión Documental MGD-RTA
Administracion de Documentos Electronicos - Modelo de Gestión Documental MGD-RTAAdministracion de Documentos Electronicos - Modelo de Gestión Documental MGD-RTA
Administracion de Documentos Electronicos - Modelo de Gestión Documental MGD-RTA
 
Seguridad - Modelo de Gestion Documental MGD-RTA
Seguridad - Modelo de Gestion Documental MGD-RTASeguridad - Modelo de Gestion Documental MGD-RTA
Seguridad - Modelo de Gestion Documental MGD-RTA
 
Interoperabilidad - Modelo de Gestion Documental de la RTA
Interoperabilidad - Modelo de Gestion Documental de la RTAInteroperabilidad - Modelo de Gestion Documental de la RTA
Interoperabilidad - Modelo de Gestion Documental de la RTA
 
Control of legal processes using collaborative tools
Control of legal processes using collaborative toolsControl of legal processes using collaborative tools
Control of legal processes using collaborative tools
 
Modelado Visual de aplicaciones Lotus Domino - Tesis
Modelado Visual de aplicaciones Lotus Domino - TesisModelado Visual de aplicaciones Lotus Domino - Tesis
Modelado Visual de aplicaciones Lotus Domino - Tesis
 
Cp 24 - Implementacion de una herramienta para service desk basada en ITIL
Cp 24 - Implementacion de una herramienta para service desk basada en ITILCp 24 - Implementacion de una herramienta para service desk basada en ITIL
Cp 24 - Implementacion de una herramienta para service desk basada en ITIL
 
Que es la usabilidad
Que es la usabilidadQue es la usabilidad
Que es la usabilidad
 

Último

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 

Último (20)

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 

Modelado Visual de Aplicaciones Lotus Notes Domino

  • 1.           CON ESTUDIOS RECONOCIDOS ANTE LA SECRETARÍA DE EDUCACIÓN PÚBLICA (SEP), SEGÚN ACUERDO No. 2007337 DE FECHA 23 DE MARZO 2007 MODELADO VISUAL DE APLICACIONES DOMINO TESIS QUE PARA OBTENER EL GRADO DE: MAESTRÍA EN TECNOLOGÍAS DE INFORMACIÓN PRESENTA: HIRIAM EDUARDO PÉREZ VIDAL ASESOR: MATI GWENDOLYNE DELGADO GARCÍA DE LA CADENA CUERNAVACA, MORELOS. DICIEMBRE DE 2009
  • 2.     Abstract The  following  research  presents:  a  Domain  Specific  Language  Modeling  (DSLM)  for  Lotus   Notes  applications  and  a  software  tool  that  implements  it.     This   tool   allows   to   design   applications   using   the   DSL   for   Lotus   Notes   Applications,   and   create  the  application  code.   Resúmen El   siguiente   trabajo   de   investigación   presenta:   un   lenguaje   de   modelado   de   dominio   específico  para  aplicaciones  Lotus  Notes  (DSLM)  y  una  herramienta  de  software  que  lo   implementa.     Esta   herramienta   permitirá   a   partir   de   un   determinado   modelo   generar   el   código   de   la   aplicación  correspondiente.    
  • 3. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Índices   i       Contenido   Introducción  ........................................................................................................................  1 Antecedentes  .....................................................................................................................  3 Planteamiento  del  problema  ..............................................................................................  4 Objetivos  de  la  tesis  ...........................................................................................................  5 Objetivo  general  .............................................................................................................  5 Objetivos  específicos  .....................................................................................................  5 Justificación  .......................................................................................................................  5 Hipótesis  ............................................................................................................................  6 Beneficios  esperados  ........................................................................................................  6 Alcance  y  limitaciones  .......................................................................................................  7 Metodología  .......................................................................................................................  7 Estructura  de  la  tesis  .........................................................................................................  9 Estado  del  arte  .................................................................................................................  11 1. Capítulo:  Diseño  de  software  ...................................................................................  13 1.1. Introducción  ..........................................................................................................  14 1.2. Diseño  ...................................................................................................................  15 1.3. Lenguajes  y  modelado  visual  ................................................................................  21 1.3.1. UML  ...............................................................................................................  21 1.3.2. Lenguajes  de  dominio  específico  ..................................................................  23 1.3.3. Modelado  de  dominio  específico  ...................................................................  26 1.3.4. Perfiles  de  UML  .............................................................................................  27
  • 4. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Índices   ii     2. Capítulo:  Herramientas  de  modelado  ......................................................................  31 2.1. MetaEdit+  ..............................................................................................................  32 2.2. Microsoft  DSL  Tools  ..............................................................................................  34 2.3. Proyecto  de  modelado  de  Eclipse  ........................................................................  37 2.4. Elección  de  la  herramienta  ...................................................................................  39 3. Capítulo:  Plataforma  Lotus  Notes  /  Domino  ...........................................................  40 3.1. Breve  historia  ........................................................................................................  41 3.2. Elementos  de  diseño  ............................................................................................  41 3.3. Funcionalidades  y  características  .........................................................................  42 3.4. Productos  de  la  plataforma  ...................................................................................  43 4. Capítulo:   Lenguaje   de   modelado   de   dominio   específico   para   Lotus   Notes   /   Domino  ..............................................................................................................................  46 4.1. Introducción  ..........................................................................................................  47 4.2. Proceso  para  definir  el  lenguaje  ...........................................................................  47 4.2.1. Análisis  de  dominio  ........................................................................................  48 4.2.2. Metamodelo  ...................................................................................................  54 4.2.3. DSL  para  aplicaciones  Lotus  Domino  ............................................................  55 4.2.4. Validación  del  DSL  ........................................................................................  56 5. Capítulo:  Desarrollo  de  la  herramienta  ...................................................................  59 5.1. Componentes  de  la  herramienta  ...........................................................................  60 5.2. Requerimientos  .....................................................................................................  60 5.2.1. Alcances  ........................................................................................................  60 5.2.2. Objetivo  general  del  sistema  .........................................................................  60 5.2.3. Funciones  del  producto  .................................................................................  60 5.2.4. Usuarios  .........................................................................................................  61
  • 5. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Índices   iii     5.2.5. Interfaces  y  relaciones  de  los  sistemas  .........................................................  61 5.2.6. Características  de  usuarios  ...........................................................................  61 5.2.7. Restricciones  .................................................................................................  61 5.2.8. Dependencias  y  supuestos  ............................................................................  61 5.2.9. Características  del  sistema  ............................................................................  61 5.2.10. Especificación  de  casos  de  uso  .....................................................................  62 5.3. Diseño  de  la  arquitectura  ......................................................................................  65 5.3.1. Arquitectura  general  de  la  herramienta  .........................................................  65 5.3.2. Diseño  de  despliegue  ....................................................................................  66 5.3.3. Diseño  de  interfaces  ......................................................................................  67 5.3.4. Diseño  de  los  módulos  ..................................................................................  69 5.3.5. Diseño  de  datos  .............................................................................................  80 5.3.6. Arquitectura  propuesta  para  ingeniería  inversa  .............................................  82 6. Capítulo:  Uso  de  la  herramienta  ..............................................................................  84 6.1. Proceso  de  uso  .....................................................................................................  85 6.2. Uso  del  modelador  ................................................................................................  86 6.3. Uso  del  generador  de  código  ................................................................................  90 7. Capítulo:  Pruebas  ......................................................................................................  92 7.1. Protocolo  de  pruebas  ............................................................................................  93 7.2. Interpretación  de  los  resultados  ............................................................................  95 Conclusiones  ....................................................................................................................  99 Conclusiones  .................................................................................................................  100 Beneficios  ......................................................................................................................  101 Recomendaciones  ..........................................................................................................  103 Recomendaciones  de  mejora  ........................................................................................  104
  • 6. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Índices   iv     Trabajos  futuros  .............................................................................................................  104 Áreas  de  oportunidad  ....................................................................................................  104 Bibliografía  ......................................................................................................................  106 Referencias  bibliográficas  ..............................................................................................  107 Anexo...............................................................................................................................  110 Perfil  UML  para  aplicaciones  Lotus  Notes  .....................................................................  111 Introducción  ................................................................................................................  111 Panorama  general  ......................................................................................................  112 Perfiles  UML  ...............................................................................................................  115 Desarrollo  del  Perfil  UML  para  Lotus  Domino  Designer  ............................................  118        
  • 7. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Índices   v     Índice  de  figuras     Figura  1  Ejemplo  de  un  diagrama  de  diseño  no  estandarizado  ............................................  3   Figura  2  Mapa  conceptual  del  marco  teórico  ......................................................................  15   Figura  3  El  proceso  unificado  Rational:  RUP(  Rational  Unified  Process)  (IBM,  2006)  .......  16   Figura  4  Flujo  de  trabajo  de  la  etapa  de  análisis  y  diseño  de  RUP  (IBM,  2006)  .................  18   Figura  5  Arquitectura  Dirigida  por  Modelos  .........................................................................  19   Figura  6  Estructura  de  alto  nivel  de  UML  2.1.1  (OMG,  2007b)  ...........................................  23   Figura  7  Fases  para  el  desarrollo  de  un  DSL  ......................................................................  25   Figura  8  Función  del  DSL  ....................................................................................................  27   Figura  9  Elementos  definidos  en  el  paquete  perfil      (OMG,  2007a)  ....................................  28   Figura  10  Herramienta  MetaEdit+  .......................................................................................  33   Figura  11  Arquitectura  de  MetaEdit+  ...................................................................................  34   Figura  12  IDE  de  Microsoft  VisualStudio  con  DSL  Tool  ......................................................  35   Figura  13  Arquitectura  DSL  Tools  .......................................................................................  36   Figura  14  Proyectos  de  Visual  Studio  al  crear  un  DSL  .......................................................  36   Figura  15  Analogía  entre  Eclipse  EMF  y  GMF  ....................................................................  38   Figura  16  Proceso  de  generación  de  un  modelador  con  Eclipse  GMF  ...............................  38   Figura  17  Composición  de  una  BDs  Notes  .........................................................................  41   Figura  18  Elementos  de  diseño  de  Lotus  Notes  .................................................................  42   Figura  19  Funciones  y  características  de  la  plataforma  Notes/Domino  ..............................  43   Figura  20  Proceso  para  la  obtención  del  DSL  .....................................................................  48   Figura  21  Distribución  de  elementos  de  diseño  en  las  aplicaciones  ...................................  52   Figura  22  Clasificación  de  elementos  de  diseño  .................................................................  53   Figura  23  Metamodelo  de  aplicaciones  Lotus  Domino  .......................................................  54   Figura  24  Clasificación  de  los  estereotipos  del  perfil  de  UML  para  Lotus  ...........................  55   Figura  25  Ejemplos  de  diagramas  de  diseño  no  estandarizados  ........................................  56   Figura  26  Ejemplo  de  diagrama  simplificado  para  la  validación  del  DSL  ............................  57   Figura  27  Ejemplo  de  diseño  especificando  las  propiedades  de  los  elementos  .................  58   Figura  28  Desarrollo  de  herramienta  de  modelado  .............................................................  60  
  • 8. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Índices   vi     Figura  29  Casos  de  uso  de  herramienta  de  modelado  .......................................................  62   Figura  30  Arquitectura  general  del  DSM  .............................................................................  65   Figura  31  Secuencia  de  ejecución  del  modelado  a  la  generación  ......................................  66   Figura  32  Diagrama  de  despliegue  de  la  herramienta  ........................................................  66   Figura  33  Interfaz  gráfica  del  componente  de  modelado  ....................................................  68   Figura  34  Interfaz  gráfica  del  componente  de  generación  de  aplicaciones  ........................  69   Figura  35  Diseño  del  modelador  .........................................................................................  69   Figura  36  Proceso  de  creación  de  la  herramienta  gráfica  basada  en  modelos  ..................  71   Figura  37  Estructura  del  modelo  de  dominio  dominoapp.ecore  ..........................................  71   Figura  38  Documento  XML  del  modelo  de  dominio  ............................................................  72   Figura  39  Vista  gráfica  del  modelo  de  dominio  ...................................................................  72   Figura  40  Estructura  del  modelo  de  generación  .................................................................  73   Figura  41  Modelo  de  definición  gráfica  ...............................................................................  74   Figura  42  Documento  XML  del  modelo  de  definición  gráfica  ..............................................  74   Figura  43  Estructura  del  modelo  de  definición  de  herramientas  o  tooling  ..........................  75   Figura  44  Documento  XML  del  modelo  de  definición  de  herramientas  ...............................  75   Figura  45  Estructura  del  modelo  de  definición  de  mapeo  o  mapping  .................................  76   Figura  46  Documento  XML  del  modelo  de  definición  de  mapeo  .........................................  77   Figura  47  Estructura  del  modelo  de  generación  GMF  ........................................................  77   Figura  48  Ejemplo  de  estructuras  de  diseños  de  aplicaciones  ...........................................  78   Figura  49  Ejemplo  de  XML  de  un  diagrama  de  diseño  .......................................................  79   Figura  50  Diseño  del  generador  de  aplicaciones  ................................................................  79   Figura  51  Arquitectura  del  generador  de  aplicaciones  ........................................................  80   Figura  52  Estructura  de  datos  de  la  eclass  database.  Vista  de  clase  .................................  80   Figura  53  Estructura  de  la  eclass  database.  Vista  de  árbol  ................................................  81   Figura  54  Estructura  de  la  eclass  database.  Vista  XML  ......................................................  81   Figura  55  Diseño  propuesto  para  el  extractor  de  diseño  ....................................................  82   Figura  56  Arquitectura  propuesta  para  el  extractor  de  diseño  ............................................  82   Figura  57  Proceso  de  uso  de  la  herramienta  ......................................................................  85   Figura  58  DSM  -­  Herramienta  de  modelado  .......................................................................  86   Figura  59  Creación  de  un  modelo  de  diseño  de  Lotus  Notes/Domino  ................................  87  
  • 9. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Índices   vii     Figura  60  Archivos  de  la  estructura  del  modelo  e  interfaz  gráfica  ......................................  87   Figura  61  Barra  de  herramientas  de  modelado  ...................................................................  88   Figura  62  Ventana  de  propiedades  de  los  elementos  .........................................................  89   Figura  63  Ejemplo  de  diagrama  de  diseño  elaborado  en  el  modelador  ..............................  89   Figura  64  Estructura  resultante  del  modelo  ........................................................................  90   Figura  65  DSM  -­  Generador  de  aplicaciones  ......................................................................  91   Figura  66  Diseño  de  un  formulario  ....................................................................................  114   Figura  67  Diagrama  de  clase  para  un  elemento  form  .......................................................  115   Figura  68  Metamodelo  de  Lotus  Domino  Designer  ...........................................................  119   Figura  69  Clasificación  de  los  estereotipos  de  LDD  ..........................................................  124   Figura  70  Metamodelo  de  Lotus  ........................................................................................  127   Figura  71  Extendiendo  al  metaelemento  Class  .................................................................  128   Figura  72  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  129   Figura  73  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  130   Figura  74  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  131   Figura  75  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  132   Figura  76  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  133   Figura  77  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  134   Figura  78  Continuación  de  la  extensión  del  metaelemento  Class  ....................................  135   Figura  79  Extendiendo  al  metaelemento  Aggregation  ......................................................  136   Figura  80  Notación  para  la  relación  de  contención  ...........................................................  196   Figura  81  Notación  para  la  relación  de  contención  reflexiva  .............................................  197   Figura  82  Relación  de  agregación,  esquema  general  .......................................................  198   Figura  83  Relación  de  composición,  esquema  general  ....................................................  199        
  • 10. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Índices   viii     Índice  de  tablas     Tabla  1  Lista  de  productos  de  Lotus  por  categoría  .............................................................  45   Tabla  2  Descripción  de  elementos  de  diseño  de  Lotus  .......................................................  50   Tabla  3  Porcentaje  de  uso  de  elementos  de  diseño  en  aplicaciones  Lotus  ........................  51   Tabla  4  Resultados  de  las  pruebas  .....................................................................................  98   Tabla  5  Estereotipos  definidos  para  Lotus  Domino  Designer  ...........................................  123   Tabla  6  Definición  de  la  propiedad  multiplicidad  ...............................................................  199   Tabla  7  Definición  de  la  propiedad  propagación  de  borrado  .............................................  199   Tabla  8  Definición  de  la  propiedad  reflexividad  .................................................................  200   Tabla  9  Valores  fijos  para  la  relaciones  ............................................................................  201          
  • 11. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   1                 Introducción   Introducción  a  este  trabajo  de  tesis.  Se   presentan  los  antecedentes  al  trabajo  de   investigación,  planteamiento  del  problema,   objetivos  de  la  tesis,  justificación  del  trabajo,   hipótesis,  beneficios  esperados,  alcances  y   limitaciones,  metodología  a  utilizar  y  descripción   de  la  estructura  de  la  tesis  mediante  un   resumen.      
  • 12. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   2     El  desarrollo  de  aplicaciones  empresariales  presenta  complejidades  como:  integración  de   diferentes  plataformas  tecnológicas,  ambientes  de  desarrollo  y  procesos  de  ingeniería  de   software.     El   correcto   modelado   de   dichas   aplicaciones   antes   de   su   codificación,   beneficia   el   aseguramiento  de  la  calidad  del  software,  mejora  la  arquitectura,  facilita  el  mantenimiento   y  ayuda  a  la  transferencia  tecnológica  al  cliente.   Lenguajes  de  modelado  genérico  o  de  propósito  general  pueden  emplearse  para  describir   una   gran   parte   de   las   características   de   los   sistemas.   Este   es   el   caso   del   Lenguaje   Unificado  de  Modelado:  UML  (Por  sus  siglas  en  inglés  Unified  Modeling  Language).   Existen  herramientas  tanto  libres  como  propietarias  que  permiten  diseñar  aplicaciones  en   cada  uno  de  los  lenguajes  de  modelado  existentes.     Es   común   que   cada   plataforma   o   tecnología   presenten   características   propias   que   requieren  de  una  técnica  o  lenguaje  de  modelado  en  particular.  Así  para  los  sistemas  de   bases  de  datos  relacionales  un  modelo  Entidad-­Relación  o  un  modelo  de  clases  de  UML   pueden  ser  suficientes.   Sin   embargo   en   determinadas   tecnologías   o   dominios   tecnológicos   un   lenguaje   de   modelado  general  puede  ser  insuficiente  para  describir  todas  las  características  deseadas.   Ante  esta  situación  puede  definirse  un  lenguaje  de  dominio  específico,  el  cual  provea  de   los  elementos  que  permitan  describir  con  mayor  precisión  dichas  características.     Lotus  Domino  es  la  plataforma  líder  en  aplicaciones  colaborativas.  Presenta  un  ambiente   de  desarrollo  orientado  a  objetos  y  una  base  de  datos  documental.   El   siguiente   trabajo   de   investigación   presenta:   un   lenguaje   de   modelado   de   dominio   específico   para   aplicaciones   Lotus   Notes   y   una   herramienta   de   software   que   lo   implementa.   Esta   herramienta   permitirá   a   partir   de   un   determinado   modelo   generar   el   código  de  la  aplicación  correspondiente.    
  • 13. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   3     Antecedentes   Los   equipos   de   desarrollo   en   aplicaciones   Lotus   Notes   carecen   de   un   lenguaje   de   modelado  adecuado  a  la  naturaleza  de  esta  tecnología.   Algunos  equipos  han  implementado  procesos  de  desarrollo  software  a  la  medida.  Estos   procesos  difícilmente  pueden  apoyarse  por  herramientas  comerciales  por  lo  que  es  común   contar  con  herramientas  desarrolladas  por  los  mismos  equipos.  Sin  embargo,  la  etapa  de   diseño   requiere   ser   mejorada   con   el   propósito   de   definir   arquitecturas   críticas   que   son   enviadas  a  los  desarrolladores  para  su  posterior  codificación.   Se   han   utilizado   distintos   lenguajes   de   modelado   para   diseñar   las   aplicaciones.   Entre   estos  lenguajes  destaca  el  uso  del  UML.  Sin  embargo  no  se  ha  encontrado  un  lenguaje  de   modelado   que   permita   definir   con   mayor   precisión   las   características   propias   de   una   aplicación  de  este  dominio  tecnológico.     Figura  1  Ejemplo  de  un  diagrama  de  diseño  no  estandarizado   Ante  esta  necesidad  en  colaboración  con  el  Centro  Nacional  de  Investigación  y  Desarrollo   Tecnológico  (CENIDET),  bajo  la  tesis  “Definición  de  un  Lenguaje  de  Dominio  Específico   para   un   entorno   de   desarrollo   rápido   de   aplicaciones”   presentada   por   Guillermo   Rivera  
  • 14. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   4     (Rivera,  2008),  se  realizó  el  trabajo  de  investigación  para  la  definición  de  un  Lenguaje  de   dominio  apropiado  para  Lotus  Notes.   Lotus  Notes  es  una  tecnología  que  difiere  de  la  programación  orientada  a  objetos  y  del   modelo   tradicional   de   bases   de   datos   relacionales.   Esta   tecnología   proporciona   un   ambiente   de   desarrollo   rápido   de   aplicaciones   llamado   Lotus   Domino   Designer.   Lotus   Notes  integra  en  una  solo  base  de  datos:   •   Elementos  de  programación  o  lógica  de  negocios   •   Interfaz  del  usuario   •   Datos   •   Seguridad   Planteamiento  del  problema   Existen   una   gran   cantidad   de   aplicaciones   colaborativas   y   portales   desarrollados   e   instalados  en  la  plataforma  Lotus  Notes    /  Domino.  Muchas  de  estas  aplicaciones  carecen   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  para  requerimientos   similares   Como  consecuencia  de  todo  lo  anterior,  podemos  decir  que  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.    
  • 15. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   5     Objetivos  de  la  tesis   Objetivo  general   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.   Objetivos  específicos   •   Revisar    las  herramientas  para  generación  de  código  a  través  del  modelado  visual   •   Definir   un   lenguaje   de   modelado   de   dominio   específico   que   permite   modelar   aplicaciones  Lotus  Domino  basado  en  la  especificación  de  Perfiles  de  UML   •   Desarrollar   una   herramienta   de   software   que   permita   generar   diagramas   de   aplicaciones  utilizando  el  lenguaje  de  dominio  específico  definido  previamente   •   Desarrollar  una  herramienta  que  permita,  dado  un  diagrama  de  aplicación,  generar   el  código  correspondiente  de  la  aplicación.   Justificación   Actualmente   no   existe   una   herramienta   de   modelado   específico   para   esta   tecnología   o   dominio  por  lo  que  esta  investigación  será  innovadora  en  este  terreno.   El  producto  de  esta  tesis  puede  ser  utilizada  en  el  diseño  de  aplicaciones  Lotus  Notes.  Así   mismo,   mejorando   la   calidad   de   las   aplicaciones   al   detectar   errores   desde   la   etapa   de   diseño   y   evitando   detectarlos   hasta   la   etapa   de   comercialización   e   implementación   de   productos  donde  los  costos  para  reparar  dichos  errores  es  muy  alto.   Dado  que  no  se  cuenta  con  un  lenguaje  de  modelado  y  herramienta  que  permita  definir   con   mayor   precisión   las   características   propias   de   una   aplicación   Lotus   Notes   y   para   resolver  el  problema  planteado  se  propone  obtener:     1.   Un  Lenguaje  de  Modelado  de  Dominio  Específico   2.   Una  herramienta  de  modelado  visual  que  implemente  el  lenguaje  de  modelado   3.   Una   herramienta   que   permita   la   generación   automática   de   los   elementos   de   diseño  que  componen  la  aplicación  modelada    
  • 16. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   6     El   lenguaje   obtenido   modelará   con   mayor   precisión   las   aplicaciones   Lotus   Notes.   Esta   herramienta  permitirá  a  partir  de  un  determinado  modelo  generar  el  código  de  la  aplicación   correspondiente.   Hipótesis   Ante  las  necesidades  de  modelar  con  mayor  precisión  las  aplicaciones  Lotus  Notes,  dando   mayor   semántica   a   los   diagramas   de   diseño   y   la   generación   de   la   estructura   de   la   aplicación  a  partir  de  dichos  diseños  se  plantea  la  siguiente  hipótesis:   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.   En  esta  hipótesis  se  mencionan  las  variables  de:   •   Facilidad  de  modelado   •   Disminución  de  tiempo  de  desarrollo   Beneficios  esperados   Con  el  trabajo  de  esta  tesis  se  esperan  alcanzar  los  beneficios  de:   •   Mayor  precisión  en  la  generación  de  diagramas  de  diseño  de  las  aplicaciones   •   Diseños   uniformes   al   contar   con   un   lenguaje   visual   único   en   los   equipos   de   desarrollo   •   Reducción  en  el  tiempo  de  modelado.  Los  desarrolladores  toman  objetos  visuales   conocidos  y  evitan  tener  que  aprender  lenguajes  y  reglas  distintas  a  su  entorno.   •   Congruencia  entre  los  diagramas  de  diseño  y  las  aplicaciones  generadas.    
  • 17. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   7     Alcance  y  limitaciones   El  trabajo  de  esta  tesis  tiene  como  alcances:  la  definición  de  un  DSL  que  permite  diseñar   aplicaciones  Lotus  Domino,  el  desarrollo  de  una  herramienta  visual  que  lo  implementa  y  la   generación  automática  de  la  aplicación  modelada.   La  funcionalidad  de  generación  automática  de  aplicaciones  crea  los  elementos  de  diseño   principales   modelados   pero   la   codificación   detallada   queda   en   manos   del   programador   para  la  etapa  de  codificación  en  un  proceso  de  ingeniería  de  software.   La  herramienta  no  implementa  la  funcionalidad  de  ingeniería  inversa  pero  se  propone  la   arquitectura  para  implementarla.   Metodología   Este  trabajo  de  tesis  se  basa  en  un  proyecto  de  tipo  investigación  y  desarrollo  (I+D).  Por   esta  razón  tiene  dos  componentes  principales:     •   La  investigación  de  técnicas,  herramientas,  y  soluciones  para  la  definición  de  una   herramienta  de  modelado  visual.  Como  resultado  de  la  etapa  de  investigación  y  con   el   conocimiento   generado   se   definirá   un   lenguaje   de   modelado   mediante   un   estándar  formal  de  especificación  de  lenguajes.   •   El  desarrollo  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   Para  la  etapa  de  investigación  de  utilizan  los  mecanismos  de:     •   Análisis   y   síntesis   en   la   determinación   del   lenguaje   de   modelo   de   dominio   específico   •   Encuesta   y   prueba   para   evaluar   el   resultado   de   la   herramienta   de   software   desarrollada  y  comprobar  las  variables  planteadas  en  la  hipótesis.   Las  pruebas  y  la  validación  del  DSL  se  realizan  con  el  apoyo  de  expertos  en  el  desarrollo   de  aplicaciones  de  la  plataforma  Lotus  Notes  
  • 18. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   8     La  metodología  seguida  para  el  desarrollo  del  siguiente  trabajo  se  divide  en  las  siguientes   fases:   FASE  1.  Investigación  del  estado  del  arte.  Estudio  del  estado  del  arte  en  la  definición  de   lenguajes  de  dominio  específico.   FASE  2.  Definición  del  DSL  para  modelado  de  aplicaciones  Lotus  Notes.  Definición   del  lenguaje  de  modelado  a  utilizar.   FASE   3.   Estudio   de   herramientas   para   la   generación   de   DSL.   Se   estudian   los   alcances,   ventajas   y   desventajas   de   las   herramientas   que   implementan   DSL   y   generan   código  automáticamente.   FASE  4.  Definición  del  modelo  para  generación  de  código  a  partir  del  DSL.  Definición   del  modelo  a  utilizar  para  la  generación  de  código  automático  a  partir  del  DSL  descrito   FASE  5.  Validación  del  DSL  para  modelado  de  aplicaciones  Lotus  Notes.  Validar  los   diagramas   obtenidos   a   partir   del   uso   del   DSL   de   manera   tal   que   representen   correctamente  el  diseño  de  la  aplicación  Lotus  Notes   FASE   6.   Desarrollo   de   la   herramienta   de   modelado   y   generación   automática   de   código.  Se  implementa  la  herramienta  de  modelado  para  elaborar  diseños  de  aplicaciones   utilizando   el   DSL   para   aplicaciones   Lotus   Notes   y   a   partir   del   diseño   generar   automáticamente  el  código  de  los  elementos  de  diseño  representados.   Esta  actividad  sigue  un  proceso  formal  de  desarrollo  de  software,  el  cual  se  compone  de:   i.   Requerimientos   ii.   Diseño  (arquitectura,  detallado,  interfaces,  datos)   iii.   Codificación     iv.   Pruebas   FASE   7.   Validación   de   la   herramienta   desarrollada.   Validar   la   herramienta   contra   aplicaciones  reales  desarrolladas  
  • 19. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   9     FASE   8.   Elaboración   de   la   tesis.   Se   reúne   la   información   generada   para   generar   el   documento  de  tesis  y  seguir  el  proceso  de  revisión  y  aceptación  del  trabajo   Estructura  de  la  tesis   A   continuación   se   presenta   un   breve   resumen   de   cada   uno   de   los   capítulos   que   se   presentan  en  esta  tesis:   En  los  Antecedentes,  se  exponen  la  problemática  que  da  origen  a  este  trabajo  haciendo   énfasis  en  la  carencia  de  un  lenguaje  de  modelado  específico  para  las  aplicaciones  Lotus   Notes   y   por   ello   las   deficiencias   en   la   etapa   de   diseño   Antecedentes.   Se   presenta   el   estado   del   arte   en   la   definición   de   lenguajes   de   modelado   y   las   herramientas   más   importantes.  Para  finalizar  se  presentan:  preguntas  de  investigación,  los  objetivos  de  esta   tesis,  justificación,  hipótesis,  beneficios  esperados,  alcance  y  limitaciones  y  la  metodología   empleada  en  el  desarrollo  de  este  trabajo   En  el  Diseño  de  software,  se  describe  esta  etapa  como  parte  de  un  proceso  formal  de   desarrollo  de  software.  La  actividad  de  diseño  está  ligada  a  enfoques  como  la  Arquitectura   Dirigida   por   Modelos   la   cual   implementa   herramientas   de   modelado   y   regeneración   automática   de   código.   En   el   diseño   de   aplicaciones   se   pueden   utilizar   dos   tipos   de   lenguajes   de   modelado:   de   propósito   general   y   de   dominio   específico.   El   UML   es   el   lenguaje   de   modelado   de   propósito   general   más   utilizado   por   lo   que   se   describe   su   composición.   Para   finalizar   se   presentan   a   los   las   características   y   el   proceso   para   la   obtención  de  un  lenguaje  de  modelado  de  dominio  específico,  los  perfiles  de  UML  como   un  método  para  representarlos  y  el  proceso  a  seguir  para  definir  un  DSL   En   las   Herramientas   de   modelado   se   presentan   las   características   de   las   tres   herramientas   más   utilizadas   en   la   actualidad:   MetaEdit+,   Microsoft   DSL   Tools   y   el   Proyecto  de  modelado  de  Eclipse.  Adicionalmente  se  presentan  los  motivos  de  la  elección   de  Eclipse  como  la  herramienta  base  a  utilizar  en  este  trabajo.   En  el  capítulo  de  la  Plataforma  Lotus  Domino,  se  presentan  las  características  de  esta   plataforma   colaborativa   empresarial.   Se   describen   sus,   elementos   de   diseño,  
  • 20. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   10     funcionalidades,  características  y  productos  comerciales  de  la  plataforma  con  el  objeto  de   entender  su  complejidad,  capacidad  y  alcance.   En   el   capítulo   de   Lenguaje   de   Modelado   de   Dominio   Específico   para   Lotus   Notes,   se   presenta   el   lenguaje   de   modelado   de   dominio   específico   a   utilizar   para   el   diseño   de   aplicaciones.   Para   la   definición   de   este   lenguaje   se   realizó   el   análisis   de   dominio,   la   definición   del   Metamodelo,   la   especificación   del   DSL   mediante   un   perfil   de   UML   y   la   validación   de   dicho   DSL   mediante   la   elaboración   de   diagramas   de   diseño   de   aplicaciones  Lotus  Notes  ya  existentes.   En   el   Desarrollo   de   la   herramienta,   se   presentan   el   proceso   utilizado   para   la   implementación   del   lenguaje   dentro   de   una   herramienta   de   modelado   y   generación   automática  de  código.  Para  la  elaboración  de  la  herramienta  se  utilizó  un  proceso  formal   de  desarrollo  de  software  por  lo  que  se  presentan  de  manera  detallada  los  requerimientos   y   el   diseño   de   la   arquitectura.   Aunque   no   es   parte   de   este   trabajo   la   incorporación   de   técnicas   de   ingeniería   inversa,   se   presenta   la   arquitectura   para   su   implementación   en   trabajos  futuros.   Uso   de   la   herramienta   describe   el   funcionamiento   y   uso   del   modelador   desarrollado   para  la  elaboración  de  diagramas  de  diseño  basados  en  el  DSL.  De  la  misma  manera  se   presenta  el  uso  del  generador  de  código  para    la  generación  automática  de  los  elementos   de  diseño  Lotus  Notes  descritos  en  el  diagrama.   En   Pruebas,   se   presenta   el   protocolo   de   pruebas   realizado   para   la   evaluación   de   la   herramienta  desarrollada,  los  resultados  de  la  evaluación  y  su  interpretación.   En  conclusiones  se  presentan  las  conclusiones  resultado  del  desarrollo  de  este  trabajo,   los  beneficios  obtenidos,  los  trabajos  futuros,  áreas  de  oportunidad  para  la  reutilización  de   la  experiencia  obtenida  durante  la  realización  de  este  trabajo.   Se   presentan   las   recomendaciones   a   seguir   para   mejorar   el   presente   trabajo   en   un   futuro,  los  trabajos  futuros  y  áreas  de  oportunidad.  
  • 21. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   11     El  anexo  final  contiene  la  especificación  del  Lenguaje  de  Modelo  de  Dominio  Específico   para  aplicaciones  Lotus  Notes  mediante  un  perfil  de  UML   Estado  del  arte   El   modelado   como   parte   fundamental   del   proceso   del   desarrollo   de   software,   puede   realizarse   a   través   de:   lenguajes   de   modelado   de   propósito   general   o   lenguajes   de   modelado  de  dominio  específico.       Los   lenguajes   de   modelado   de   propósito   general,   tienen   como   finalidad   representar   de   manera  genérica  las  facetas  de  un  sistema.  Estos  lenguajes  están  más  enfocados  en  la   descripción  que  en  la  generación  de  código,  además  tienen  como  problema  principal  que   los  elementos  de  un  diagrama  pueden  tener  diferentes  interpretaciones  si  son  utilizados  en   diferentes   contextos   o   dominios   tecnológicos.   El   mejor   exponente   de   los   lenguajes   de   modelado   de   propósito   general   es   el   UML   (por   sus   siglas   en   inglés:   Unified   Modeling   Language).  (Steven  &  Pooley,  2007),  (OMG,  2007b)   Este   tipo   de   lenguajes   no   han   sido   suficientes   para   modelar   muchos   de   los   dominios   donde   se   desean   implementar.   Por   esta   razón   muchas   empresas   se   han   visto   en   la   necesidad  de  generar  sus  propios  lenguajes  de  modelado.   Los  lenguajes  de  modelado  de  dominio  específico:  DSL  (por  sus  siglas  en  inglés:  Domain   Specific  Language),  tienen  como  objeto  describir  con  mayor  precisión  las  características   propias   de   un   dominio   tecnológico.   Estos   lenguajes   en   la   mayoría   de   los   casos   están   asociados   a   la   generación   automática   de   código.   La   especificación   de   un   DSL   está   asociada   a   un   metamodelo   o   modelo   de   dominio.   Existen   varias   opciones   para   la   descripción  de  un  lenguaje  de  modelado  de  domino  específico(Kelly  &  Tolvanen,  2008),   entre  ellas  la  más  usada  son  los  perfiles  de  UML(Fuentes  &  Vallecillo,  2004).   Para   facilitar   el   uso   de   un   lenguaje   de   modelado   de   dominio   específico,   este   debe   implementarse   a   través   de   una   herramienta   de   software.   Existen   dos   caminos   para   su   implementación:     1.   Crear  una  herramienta  de  software  a  la  medida  o    
  • 22. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Introducción   12     2.   utilizar  herramientas  de  terceros    especializadas  en  la  implementación  de  un   DSL.   (Kelly,   2004)   ,   (Ehrig,   Ermel,   Hänsgen,   &   Taentzer,   2005),   (Leroux,   Nally,  &  Hussey,  2006)   Las   tres   herramientas   actuales   más   utilizadas   para   la   implementación   de   un   DSL   son:   MetaEdit+,  Eclipse  y  Microsoft  DSL  Tools.    
  • 23. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   13                   1.    Capítulo:  Diseño  de  software   En   esta   sección   se   describen   los   conceptos   claves  del  diseño  de  software  que  sustentan  el   desarrollo   del   trabajo   de   investigación.   Se   presenta   la   etapa   de   diseño   dentro   de   un   proceso   formal   de   desarrollo   de   software,   los   lenguajes   de   modelado   visual,   el   UML   como   lenguaje  de  modelado  de  propósito  general,  los   lenguajes  de  dominio  específico  y  los  perfiles  de   UML  para  su  especificación      
  • 24. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   14     1.1.   Introducción   El   diseño   de   software   traduce   los   requerimientos   en   modelos   que   serán   la   base   de   la   etapa  posterior  de  codificación  de  la  aplicación.     En  esta  etapa  de  diseño  existen  distintos  enfoques  sobre  el  uso  de  los  modelos.  En  los   últimos  años  el  enfoque  de  la  Arquitectura  Dirigida  por  Modelos:  MDA  (Por  sus  siglas  en   inglés:   Model   Driven   Architecture),   ha   hecho   énfasis     en   la   importancia   de   obtener   en   primer  lugar  dichos  modelos  y  a  partir  de  estos,  obtener  de  manera  automática  el  código   de  la  aplicación.   Los  modelos  mencionados  pueden  elaborarse  utilizando  lenguajes  de  propósito  general  o   lenguajes   de   dominio   específico:   DSL   (por   sus   siglas   en   inglés:   Domain   Specific   Language).     La  elaboración  de  un  DSL,  es  una  tarea  de  profundo  análisis  del  dominio  que  se  desea   modelar  obteniendo  al  final  una  especificación  de  un  lenguaje  textual  o  visual.   Existen   dos   opciones   principales   para   la   definición   de   un   DSL:   La   extensión   de   un   lenguaje   de   propósito   general   como   el   UML   o   la   definición   completa   de   uno   nuevo   utilizando  algún  estándar  abierto  o  de  facto.     Para  facilitar  el  uso  de  un  DSL,  estos  lenguajes  suelen  implementarse  en  herramientas  de   modelado   visual   que   permiten:   Elaborar   modelos   basados   en   el   DSL   y   generar   automáticamente  el  código  de  la  aplicación  equivalente.  Algunas  herramientas  modernas   permiten   realizar   ingeniería   inversa.   La   ingeniería   inversa   es   el   proceso   de   convertir   código  fuente  de  aplicaciones  en  elementos  de  un  modelo.   Cuando   se   han   obtenido   las   partes   antes   descritas   se   cuenta   con   una   herramienta   de   Modelado   de   Dominio   Específico:   DSM   (por   sus   siglas   en   inglés:   Domain   Specific   Modeling)  bajo  el  enfoque  MDA.  
  • 25. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   15       Figura  2  Mapa  conceptual  del  marco  teórico     1.2.   Diseño   El   diseño   de   software   es   una   actividad   multidisciplinaria   que   proporciona   soluciones   a   través   de   la   comunicación   efectiva   de   ideas   y   el   uso   de   prácticas   de   ingeniería.   El   propósito  del  diseño  es  simplemente  producir  una  solución  a  un  problema.(Budgen,  2003)    
  • 26. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   16       Figura  3  El  proceso  unificado  Rational:  RUP(  Rational  Unified  Process)  (IBM,  2006)   La   etapa   de   diseño   es   una   parte   fundamental   de   todos   los   procesos   de   desarrollo   de   software   más   importantes,   ya   que   su   propósito   es   describir   el   cómo   los   requerimientos   serán  convertidos  en  productos  usando  la  solución  más  apropiada.   Dada  la  profundidad  del  diseño  puede  considerarse  como:   •   Alto  nivel,  cuando  se  enfoca  más  a  aspectos  de  arquitectura.  Ejemplo:  diagramas   de  componentes,  modelado  de  negocios   •   Detallado,   cuando   describe   con   mayor   precisión   la   implementación.   Ejemplos:   diagramas  de  clases   Para   Pressman     (Pressman,   2000),   esta   actividad   es   un   proceso   que   está   enfocado   principalmente   en   cuatro   aspectos   o   atributos:   estructura   de   datos,   arquitectura   de   software,   representaciones   de   interfaces   y   detalles   de   procedimientos   o   módulos.   El   proceso   de   diseñar   traduce   los   requerimientos   en   una   representación   del   software   que   permite  evaluar  su  calidad  antes  de  iniciar  la  etapa  de  codificación.    
  • 27. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   17     Muchos   procesos   de   desarrollo   de   software   implementan   la   etapa   de   diseño   como   una   actividad  fundamental.  Uno  de  los  procesos  de  desarrollo  más  conocidos  es  el  Proceso   Unificado  de  Rational.   Para  RUP,  la  etapa  de  diseño  es  actividad  extensa  y  se  encuentra  integrada  a  la  etapa  de   análisis.  El  propósito  de  esta  etapa  es:(IBM,  2006)   •   Transformar  los  requerimientos  en  el  diseño  de  lo  que  el  sistema  debe  hacer   •   Desarrollar  una  arquitectura  robusta  para  el  sistema   •   Adaptar  el  diseño  para  integrarlo  al  ambiente  de  implementación  considerando  su   desempeño   Para  RUP  las  tareas  a  realizar  durante  el  análisis  y  diseño  son:   •   Análisis  de  la  Arquitectura   •   Evaluación  de  la  viabilidad  de  pruebas  de  concepto  de  la  arquitectura   •   Diseño  de  cápsulas   •   Diseño  de  clases   •   Pruebas  de  concepto  de  construcción  de  la  arquitectura     •   Diseño  de  la  base  de  datos   •   Definir  contexto  del  sistema   •   Descripción  de  la  distribución   •   Descripción  de  la  arquitectura  de  ejecución   •   Diseño  de  elementos  de  prueba   •   Diseño  de  interfaces  de  usuario   •   Identificación  de  elementos  de  diseño   •   Identificación  de  mecanismos  de  diseño   •   Identificación  de  servicios   •   Incorporación  de  elementos  de  diseño  existentes   •   Análisis  de  operaciones   •   Diseño  de  operaciones  
  • 28. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   18     •   Prototipos  de  interface  de  usuarios   •   Revisión  de  la  arquitectura   •   Revisión  de  el  diseño   •   Diseño  de  servicios   •   Especificación  de  migración  de  datos   •   Diseño  de  subsistemas   •   Análisis  y  diseño  de  casos  de  uso     Figura  4  Flujo  de  trabajo  de  la  etapa  de  análisis  y  diseño  de  RUP  (IBM,  2006)   El  resultado  de  la  etapa  de  diseño  es  la  obtención  de  modelos.  Estos  modelos  pueden  ser   descritos  utilizando  lenguajes  de  modelado  de  propósito  general  como  el  UML  o  lenguajes   de  modelado  de  dominio  específico.  
  • 29. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   19     Un   modelo   es   la   representación   simplificada   de   la   realidad,   que   generalmente   utiliza   símbolos  para  significar  a  los  elementos  reales,  y  por  medio  de  un  proceso  de  abstracción,     distinguir  las  partes  esenciales  de  una  situación  ignorando  las  prescindibles,  con  el  objeto   de  entender  con  mayor  claridad  cómo  funciona,  descubrir  relaciones,  reflexionar  de  una   manera  sencilla  acerca  de  su  operación  y  en  general  disminuir  el  grado  de  complejidad.   (Parra,  2000)   La   tarea   de   diseñar   puede   estar   guiada   por   diferentes   enfoques   o   técnicas   como   la   Arquitectura   Dirigida   por   Modelos:   MDA   (por   sus   siglas   en   inglés:   Model   Driven   Architecture).   MDA  busca  alinear  el  diseño  contra  las  aplicaciones  resultantes  en  distintos  dominios.  Los   modelos  diseñados  bajo  este  enfoque  pueden  ser  elaborados  con  lenguajes  de  propósito   general  como  el  UML  o  lenguajes  de  dominio  específico.     Figura  5  Arquitectura  Dirigida  por  Modelos   El   MDA   tiene   como   promesa   permitir   la   definición   de   modelos   de   datos   y   aplicaciones   entendibles   por   la   máquina   los   cuales   permiten   mantener   durante   largo   tiempo   la   flexibilidad  de:  (Mukerji  &  Miller,  2003)  
  • 30. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   20     •   Implementación.  Una  nueva  infraestructura  de  implementación  puede  ser  integrada   o  integrada  por  diseños  existentes   •   Integración:   Se   puede   automatizar   la   integración   de   datos   a   nuevas   infraestructuras.   •   Mantenimiento:  La  disponibilidad  de  diseños  entendibles  por  la  máquina  da  a  los   desarrolladores   acceso   directo   a   la   especificación   del   sistema   haciendo   su   mantenimiento  mucho  más  simple   •   Pruebas  y  simulación.  Los  modelos  desarrollados  pueden  ser  usados  para  generar   código,   lo   que   equivale   a   validarlos   contra   los   requerimientos,   probar   varias   infraestructuras   y   usarlos   directamente   para   simular   el   comportamiento   de   un   sistema  que  está  siendo  diseñado   Un   DSM   está   fuertemente   ligado   al   enfoque   MDA   ya   que   a   través   de   los   modelos   diseñados,  es  posible  generar  código  de  aplicación,  cumpliendo  así  lo  que  este  enfoque   propone.   Los  modelos  generados  utilizando  un  DSM  realizan  los  siguientes  cambios  o  mejores  en  el   proceso  de  diseño:  (Kelly  &  Tolvanen,  2008)   •   El  control  de  versiones  de  una  aplicación  puede  llevarse  desde  los  modelos  y  no   exclusivamente  desde  el  código   •   Disminución  del  tiempo  de  pruebas  de  la  aplicación  anticipándola  desde  la  etapa  de   diseño   •   La  actividad  de  depuración  puede  realizarse  desde  el  diseño   •   Mejoran  la  comunicación  ya  que  expresan  los  conceptos  importantes  del  dominio   sin  separarla  de  la  implementación   •   Se   convierten   en   elementos   de   entrada   para   diferentes   artefactos,   pudiendo   utilizarse   estos   modelos   para   obtener   por   ejemplo:   documentación,   casos   de   prueba  y  configuración  de  los  datos   En  equipos  de  desarrollo  pequeños  no  siempre  existe  una  figura  de  arquitecto  de  software   o  diseñador  cuya  función  sea  la  de  generar  los  modelos  de  diseño  de  las  aplicaciones.  
  • 31. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   21     Esta   actividad   es   frecuentemente   cubierta   por   los   mismos   desarrolladores   o   programadores.     1.3.   Lenguajes  y  modelado  visual   Los  lenguajes  visuales  permiten  manipular  elementos  de  programación  gráficamente  en   lugar  de  especificarlos  textualmente.  (Wikipedia,  2007b)   Pueden  clasificarse  de  acuerdo  al  tipo  de  expresión  visual  utilizada  en:  lenguajes  basados   en  íconos,  lenguajes  basados  en  formularios  y  lenguajes  de  diagramas.   Los   lenguajes   visuales   proporcionan   elementos   de   íconos   o   gráficos   que   pueden   ser   manipulados  por  los  usuarios  de  manera  interactiva  de  acuerdo  a  un  conjunto  de  reglas   especificadas.   La   definición   de   patrones   de   características   puede   ser   la   base   de   usabilidad   entre   los   patrones  identificados  por  el  usuario  y  aquellos  que  son  administrados  por  el  sistema.  Un   lenguaje  visual  dinámico  es  un  conjunto  ordenado  de  sentencias  visuales  caracterizadas   por   la   presencia   de   elementos   comunes(Bottoni,   Chang,   Costabile,   Levialdi,   &   Mussio,   2002).   Se   pueden   especificar   las   transformaciones   posibles   especificando   formalmente   este  proceso.   El  modelado  visual  es  el  uso  de  semántica,  notaciones  de  diseño  textuales  y  gráficas  para   describir  diseños  de  software.  Una  notación  como  el  UML,  permite  establecer  un  nivel  de   abstracción,   mientras   se   mantienen   reglas   de   sintaxis   y   semántica.   El   modelado   visual   proporciona   un   medio   de   comunicación   entre   el   equipo   de   trabajo   para   la   revisión   del   diseño,   su   justificación   y   la   determinación   de   las   bases   de   su     implementación   sin   ambigüedades.(IBM,  2006)   1.3.1.   UML   El   Lenguaje   de   Modelado   Unificado   es   un   lenguaje   de   modelado   visual   orientado   a   objetos(Rumbaugh,   Jacobson,   &   Booch,   1998).   EL   UML   es   el   sucesor   de   métodos   y  
  • 32. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   22     diseños   orientados   a   objetos   que   surgió   a   finales   de   los   80’s.   Fue   creado   por   Booch,   Rumbaugh  y  Jacobson.  En  la  actualidad  es  un  estándar  del  Grupo  de  Administración  de   Objetos:   OMG   (por   sus   siglas   en   inglés:   Object   Management   Group)(Fowler,   Scott,   González  V,  &  Morales  Peake,  1999).  Contiene  abstracciones  para  muchos  conceptos  de   modelado  orientado  a  objetos  estándar.  Entre  ellos  se  encuentran  los  diagramas  de  clase,   diagramas   de   máquinas   de   estado,   diagramas   de   casos   de   uso   y   diagramas   de   secuencia(Booch,   Rumbaugh,   &   Jacobson,   1999).   Con   estos   diagramas   los   usuarios   pueden  describir  la  arquitectura,  diseño  y  aún  la  implementación  de  sistemas  de  software.   El   UML   se   encuentra   fuertemente   integrado   el   proceso   de   desarrollo   iterativo   implementado  por  RUP.   El  UML  2.0  define  en  la  actualidad  trece  tipos  de  diagramas  divididos  en  tres  categorías:  la   estructura   estática   de   la   aplicación,   tipos   generales   de   comportamiento   y   aspectos   de   interacción.(OMG,  2007b)   •   Diagramas  de  estructura:  Diagrama  de  clases,  diagramas  de  objetos,  diagrama  de   componentes,  diagrama  de  composición  de  la  estructura,  diagrama  de  paquetes  y   diagrama  de  implementación.   •   Diagramas  de  comportamiento:  diagrama  de  casos  de  uso,  diagramas  de  actividad   y  diagrama  de  máquina  de  estados.   •   Diagramas  de  interacción:  derivados  de    los  diagramas  de  comportamiento  incluyen   el   diagrama   de   secuencia,   diagrama   de   comunicación,   diagrama   de   tiempo   y   diagrama  general  de  interacción  
  • 33. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   23       Figura  6  Estructura  de  alto  nivel  de  UML  2.1.1  (OMG,  2007b)   UML  fue  diseñado  para  ser  un  lenguaje  gráfico  de  modelado  de  propósito  general.  Esto  le   permite   especificar   la   mayoría   de   los   sistemas   basados   en   objetos   o   componentes.   Cuando  el  UML  no  permite  expresar  los  conceptos  de  un  dominio  específico  o  se  desea   restringir  o  especializar  sus  constructores  propios  se  puede  definir  un  lenguaje  de  dominio   específico.  Ante  esta  situación  se  puede  definir  un  lenguaje  totalmente  nuevo  o  extender  el   propio   UML,   especializando   algunos   de   sus   conceptos   y   extendiendo   otros   pero   respetando   la   semántica   original.   Para   extender     el   lenguaje   UML   existen   una   serie   de   mecanismos  llamados  perfiles  de  UML.  (Fuentes  &  Vallecillo,  2004)   1.3.2.   Lenguajes  de  dominio  específico   Un   lenguaje   de   dominio   específico   o   DSL   (Por   sus   siglas   en   inglés:   Domain-­Specific   Language)  es  un  lenguaje  que  permite  a  través  de  notaciones  apropiadas  y  abstracciones,   expresar  un  dominio  de  problemas  específico.(Deursen,  Klint,  &  Visser,  2000)   Un  lenguaje  de  dominio  específico  está  definido  por  un  modelo  del  dominio.    
  • 34. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   24     Ejemplos  de  DSL  son:     •   Diagramas  entidad  –  relación(Chen,  1976)   •   BPEL  -­    Business  Process  Execution  Language(Alves  et  al.,  2007)   •   CSS  -­  Cascading  Style  Sheets(Bos,  Lie,  Lilley,  &  Jacobs,  1998)   •   SQL  -­  Structured  Query  Language(Date  &  Darwen,  1993)   Muchos  lenguajes  son  de  un  dominio  específico  más  que  de  propósito  general.(Mernik  &   Sloane,  2005)   Existen  otros  nombres  para  un  DSL(Wikipedia,  2007a)  como:   •   Pequeños  lenguajes   •   Macros   •   Lenguajes  de  aplicación   •   Lenguajes  orientados  a  problemas   Adoptar  un  DSL  implica  riesgos  y  oportunidades(Deursen  et  al.,  2000).  Entre  los  beneficios   tenemos:   •   Expresar  en  un  nivel  de  abstracción  el  dominio  del  problema   •   Son  concisos,  autodocumentados  y  reutilizables  para  diferentes  propósitos   •   Aumentan  la  productividad,  lectura,  mantenimiento  y  portabilidad   •   Describe  un  dominio  de  conocimiento,  conservándolo  y  reutilizándolo   Las   herramientas   de   cómputo   que   implementan   un   DSL   capturan   especificaciones   en   forma   de   modelos   de   dominio.   Comúnmente   pueden   generar,   configurar   e   integrar   determinados   componentes   de   aplicaciones.   Estos   ambientes   traducen   el   diseño   verificado  mediante  un  modelado  formal  a  una  variedad  de  artefactos  que  pueden  incluir   código,  esquemas  de  bases  de  datos  y  configuraciones.(Ledeczi  et  al.,  2001).  La  intención   de  crear  un  DSL  es  llegar  a  la  generación  automática  de  código.   Se  pueden  distinguir  5  fases  para  el  desarrollo  de  un  DSL:  (Mernik  &  Sloane,  2005)  
  • 35. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   25     •   Decisión,     •   análisis,     •   diseño,     •   implementación  e     •   implantación     Figura  7  Fases  para  el  desarrollo  de  un  DSL   En   el   modelado   de   un   dominio   específico   se   pueden   distinguir   al   menos   cuatro   direcciones(Luoma,  Kelly,  &  Tolvanen,  2004):   •   Conceptos   del   desarrollador   o   del   experto   del   dominio.   Cuando   el   lenguaje   es   modelado  por  un  experto  es  más  fácil  de  entender.   •   Salida  generada.  Definición  de  la  estructura  de  código  requerida.   •   Representatividad  del  sistema  construido.  El  modelo  debe  entenderse  claramente   cuando  es  visto  por  el  usuario  final.   •   Espacio  de  variabilidad.  Definiciones  de  lenguajes  flexibles  que  puedan  extenderse   para  ser  empleadas  en  futuras  variantes.   Para  elaborar  un  DSL  se  debe  realizar  un  análisis  de  dominio  formal.  La  salida  de  esta   etapa  es  un  modelo  de  dominio  que  consiste  de(Mernik  &  Sloane,  2005):   •   Una  definición  de  dominio  que  describe  el  alcance  del  dominio   •   Terminología  del  dominio  (vocabulario,  ontología)   Desición de elaboración Análisis del dominio Diseño Implementación Implantación
  • 36. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   26     •   Descripciones  de  los  conceptos  del  dominio   •   Modelos  característicos  que  describen  las  constantes  y  variables  de  los  conceptos   del  dominio  y  sus  interdependencias.   El   tiempo   que   un   desarrollador   necesita   para   aprender   un   lenguaje   de   modelado   de   propósito  general  es  mayor  que  el  que  requiere  para  aprender  un  DSL.  Un  DSL  representa   de   manera   más   cercana   el   dominio   que   se   desea   modelar.   En   Nokia   por   ejemplo,   el   conocimiento  del  dominio  contenido  en  su  DSL  produjo  una  disminución  en  la  curva  de   aprendizaje   para   nuevos   empleados.   Ello   redujo   el   inicio   de   la   productividad   de   los   desarrolladores  de  seis  meses  a  2  semanas.(Kelly  &  Tolvanen,  2000)   1.3.3.   Modelado  de  dominio  específico   El   Modelado   de   dominio   específico:   DSM   (Por   sus   siglas   en   inglés:   Domain   Specific   Modeling)  comúnmente  es  utilizado  como  sinónimo  de  DSL.  Sin  embargo  un  DSL  puede   hacer   traducciones   entre   lenguajes   textuales   como   es   el   caso   de   Ruby.   (Freeze,   2006)(Cuadrado  &  Molina,  2007).     El   DSM   tiene   como   beneficio   principal   una   mayor   alineación   entre   el   modelo   de   la   aplicación  y  el  código  generado.(Kelly  &  Tolvanen,  2008)   Los  DSM  están  más  relacionados  a  herramientas  visuales  de  modelado  que  soportan  la   implementación  de  un  DSL.   Actualmente   muchas   empresas   apoyan   la   generación   de   DSM   y   su   implementación   a   través  de  sus  herramientas.  Tal  es  el  caso  de  Microsoft,  IBM,  MetaCase  y  Eclipse.   El   modelado   de   dominio   específico   requiere   principalmente   de   tres   cosas:   (Kelly   &   Tolvanen,  2008)   •   Un  lenguaje  de  modelado  de  dominio  específico   •   Un  generador  de  código  de  dominio  específico   •   Un  marco  o  herramientas  de  dominio  
  • 37. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   27       Figura  8  Función  del  DSL   Los   generadores   de   código   asociados   a   los   DSM   surgen   como   una   evolución   de   los     lenguajes  de  cuarta  generación.   1.3.4.   Perfiles  de  UML   Un  perfil  de  UML  es  una  opción  para  definir  un  DSL  extendiendo  la  capacidad  del  UML.   Los  perfiles  de  UML  permiten  la  definición  de  estereotipos  los  cuales  son  extensiones  de   diseño   de   elementos   UML   que   permiten   contar   con   elementos   UML   con   información   adicional.(Leroux  et  al.,  2006)   La  siguiente  imagen  muestra  la  estructura  de  los  elementos  utilizados  para  definir  un  perfil   de  UML  proporcionados  por  la  especificación  del  estándar.   Un  perfil  de  UML  es  una  especificación  que  hace  una  o  más  de  las  siguientes  cosas(OMG,   2007a)(OMG,  2007b):     •   Identificar  un  subconjunto  de  el  metamodelo  UML   •   Especificar  un  conjunto  de  restricciones  para  elementos  bien  formados  mediante  el   Lenguaje  de  Restricción  de  Objetos  de  UML:  OCL  (Por  sus  siglas  en  inglés  Object   Constraint  Language)  (OMG,  2006)   •   Especificar   elementos   estándar   mediante   instancias   de   estereotipos   de   UML,   valores  etiquetados  o  restricciones   •   Especificar  la  semántica  de  los  elementos  del  perfil  expresada  en  lenguaje  natural  
  • 38. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   28     •   Especificar  los  elementos  comunes  del  modelo  en  términos  del  perfil       Figura  9  Elementos  definidos  en  el  paquete  perfil      (OMG,  2007a)   El  OCL  puede  ser  usado  para  diferentes  propósitos:(OMG,  2006)   •   Como  un  lenguaje  de  consulta   •   Para  especificar  invariabilidad  de  clases  y  tipos  en  el  modelo  de  clases   •   Para  especificar  tipos  invariantes  para  estereotipos   •   Para  describir  pre  y  post  condiciones  en  operaciones  y  métodos   •   Para  describir  guardas   •   Para  especificar  destinos  para  mensajes  y  acciones   •   Para  especificar  restricciones  en  operaciones  
  • 39. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   29     •   Para  especificar  reglas  de  derivación  de  atributos  para  cualquier  expresión  sobre  un   modelo  UML   Para  definir  un  perfil  debe  contarse  con  un  metamodelo  previo  que  muestre  los  elementos   del  dominio  y  sus  relaciones.   Un  metamodelo  es  un  modelo  que  define  otro  modelo.  (Leroux  et  al.,  2006)   Un  perfil  se  compone  de:     •   La  declaración  de  un  paquete  perfil  de  UML.   •   Tipos   primitivos.   Son   utilizados   en   los   estereotipos   como   etiquetas   definidas.   Pueden  estar  predefinidas  en  una  librería  del  dominio  específico  referenciada  por  el   perfil   o   pueden   importarse   de   otras   librerías   como   la   del   plugin   de   Eclipse     org.Eclipse.uml2.uml.resources.  Por  ejemplo  “texto”,  “entero”,  “booleano”.   •   Enumeraciones.  Es  un  tipo  de  dato  que  permite  definir  cualquier  número  de  valores   nombrados  definidos  por  el  usuario.  Por  ejemplo  “Tipo  de  inmueble”.   •   Valores  etiquetados(en  inglés:  enumeration literals).  Un  valor  de  dato  definido  por  el   usuario   para   ser   usado   en   una   enumeración.   Por   ejemplo   “condominio”,   “departamento”,  “residencia”   •   Estereotipos.  Definen  el  cómo  puede  ser  extendida  una  metaclase,  permitiendo  en   lugar   de   esta   el   uso   de   la   notación   o   terminología   del   dominio.   Cada   estereotipo   puede  extender  una  o  más  clases  a  través  de  extensiones  como  parte  de  un  perfil.   Por  ejemplo  <<inmueble>>,  <<constructor>>,<<comprador>>   •   Generalizaciones   de   estereotipos.   Como   en   las   clases   los   estereotipos   pueden   estar   involucrados   en   generalizaciones.   Una   generalización   es   una   relación   taxonómica   entre   un   clasificador   específico   y   un   clasificador   mas   general.   Cada   clasificador  específico  hereda  las  características  del  clasificador  general  pudiendo   agregar  sus  características  propias.     •   Propiedades   de   estereotipos.   Como   en   las   clases   los   estereotipos   pueden   tener   propiedades   o   atributos.   Cuando   un   estereotipo   es   aplicado   a   un   elemento   del  
  • 40. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Diseño  de  software   30     modelo,   los   valores   de   las   propiedades   pueden   ser   referenciados   como   valores   etiquetados   •   Referencias  a  metaclases.  Un  perfil  es  una  forma  restricta  de  un  metamodelo  que   siempre  debe  estar  referenciado  a  un  metamodelo  (por  ejemplo  UML).  Un  perfil  no   puede   ser   usado   sin   la   referencia   a   un   metamodelo,   este   define   el   límite   para   extender  las  metaclases  de  un  metamodelo  de  referencia  vía  estereotipos.   •   Extensiones.  Son  usadas  para  indicar  que  las  propiedades  de  las  metaclases  son   extendidas   a   través   de   estereotipos   y   permiten   de   manera   flexible   aplicar   dichos   estereotipos  a  los  elementos. A medida que se desea mejorar el modelado acercándolo a las características propias del dominio, el diseño de un DSL se vuelve recomendable. Tanto los perfiles de UML como el UML están basados en el MOF estándar definido por el OMG. Existen   varios   ejemplos   de   perfiles   de   UML   empleados   en   la   actualidad.   Entre   ellos   tenemos:   •   Lenguaje   de   modelado   de   sistemas:   SysML   (por   sus   siglas   en   inglés:Systems   Modeling  Language)(Partners,  2005)   •   Perfil  de  UML  para  CORBA   •   Perfil  UML  para  distribución  de  datos   •   Perfil  de  UML  para  el  modelado  y  análisis  de  sistemas  embebidos  y  en  tiempo  real:   MARTE   (por   sus   siglas   en   inglés:   Modeling   and   Analysis   of   Real-­time   and   Embedded  Systems)    
  • 41. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Herramientas  de  modelado   31                     2.  Capítulo:  Herramientas  de  modelado   En   esta   sección   se   presenta   la   revisan   las   características   de   las   herramientas   para   implementar  lenguajes  de  modelado  de  dominio   específico.  Las  herramientas  que  se  presentan   son:   MetaEdit+,   Microsoft   DSL   Tools   y   el   proyecto  de  modelado  de  Eclipse      
  • 42. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Herramientas  de  modelado   32     Introducción   Existen  en  la  actualidad  varias  herramientas  para  modelado  visual  capaces  de  utilizar  un   DSL.  Entre  las  más  importantes  tenemos:     •   MetaEdit+,     •   MS  DSL  Tool,     •   Eclipse  Modeling  Framework.   Una   herramienta   no   es   suficiente   para   la   implementación   de   un   DSL.   Debe   contarse   previamente  con  el  modelo  de  domino  o  metamodelo  para  un  trabajo  completo.   2.1.   MetaEdit+   MetaEdit+  es  una  herramienta  de  la  marca  metaCASE  que  permite  diseñar  lenguajes  de   modelado  y  generación  de  código  para  automatizar  el  desarrollo  de  software.  Fue  creada   en  el  año  de  1995.   En   Metaedit+,   el   lenguaje   de   metamodelado   se   denomina   GOPPRR   (por   sus   siglas   en   inglés:   Graph,   Object,   Property,   Port,   Relationship   y   Role),   que   son   los   meta-­tipos   que   proporciona  para  describir  los  lenguajes  de  modelado.(Gomez  &  Sanchez,  )  
  • 43. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Herramientas  de  modelado   33       Figura  10  Herramienta  MetaEdit+   Esta   herramienta   permite   representar   modelos   de   manera   textual   y   gráfica.   Dichos   metamodelos  y  los  mismos  modelos  son  almacenados  en  un  repositorio.   El  método  de  desarrollo  de  esta  herramienta  es  definir  conceptos,  propiedades  asociadas   y  reglas.   A   diferencia   de   otras   herramientas,   el   entorno   de   trabajo   que   utiliza   no   diferencia   claramente  los  conceptos  de  sintaxis  abstracta  y  sintaxis  concreta.  De  esta  forma,  cuando   se   define   un   nuevo   elemento   del   metamodelo   y   sus   propiedades,   se   diseña   también   el   aspecto  visual  del  mismo.  
  • 44. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Herramientas  de  modelado   34       Figura  11  Arquitectura  de  MetaEdit+   Esta  herramienta  se  ha  utilizado  para  implementar  más  de  100  técnicas  de  modelado  y   docenas  de  código  y  reportes.   Esta  herramienta  ha  sido  utilizada  por  Nokia  para  personalizar  métodos  de  desarrollo  de   sistemas  de  administración  de  redes  y  sus  teléfonos  móviles.  Deloitte  &  Touche  utilizaron   metaCASE   para   implementar   una   herramienta   que   soporta   su   metodología   orientada   a   objetos.   2.2.   Microsoft  DSL  Tools   Esta   herramienta   es   una   extensión   del   Visual   Studio   que   permite   la   construcción   de   diseñadores  gráficos  y  la  generación  de  código  usando  una  notación  diagramática  para   dominio  específico.  DSL  Tools  incluye  las  siguientes  herramientas:(Cook,  Jones,  Kent,  &   Wills,  2007)  
  • 45. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Herramientas  de  modelado   35     •   Un   asistente   de   proyectos   con   plantillas   de   soluciones   que   ayudan   a   iniciar   el   desarrollo  de  un  DSL  del  usuario   •   Un  diseñador  gráfico  para  crear  y  editar  la  definición  del  DSL   •   Un  motor  de  validación  para  asegurar  que  la  definición  del  DSL  está  bien  formada   •   Un   generador   de   código   que   toma   la   definición   del   DSL   como   entrada   para   producir  código   Para   liberar   la   herramienta   se   debe   empaquetar   la   solución,   la   cual   solo   puede   ser   ejecutada  en  el  entorno  propietario  de  Visual  Studio.   Microsoft   DSL   Tools   permiten   definir   lenguajes   gráficos   usando   sintaxis   abstracta   (metamodelo)  en  una  notación  propietaria.  La  base  de  dichos  modelos  es  el  XML  como   mecanismo  de  persistencia.     Figura  12  IDE  de  Microsoft  VisualStudio  con  DSL  Tool  
  • 46. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Herramientas  de  modelado   36     EL   desarrollo   de   un   DSL   en   Visual   Studio   debe   tener   las   siguientes   características:   notación,   modelo   del   dominio,   generación   de   artefactos,   serialización   e   integración   con   Visual  Studio.     Figura  13  Arquitectura  DSL  Tools   Esta  herramienta  genera  un  DSL  a  través  de  un  asistente  el  cual  nos  permite  elegir  una   plantilla  base  que  puede  ser  personalizada.   El   resultado   son   dos   proyectos   enlazados   que   permiten   definir   el   DSL   y   construir   la   interface  gráfica  del  usuario.(Gomez  &  Sanchez,  )     Figura  14  Proyectos  de  Visual  Studio  al  crear  un  DSL   Desarrollo del DSL (Definición del modelo) DomainModel.dsldm Modelodel dominio Notación gráficaycajade herramienta Exploradory ventanade propiedades Validación Serialización Implantación DSL Designer (Desarrollo de la GUI) Designer.dsldd Construccion delmodelode dominio Significadodel modelo Progamación usandoDSL API
  • 47. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Herramientas  de  modelado   37     2.3.   Proyecto  de  modelado  de  Eclipse   Eclipse  es  una  organización  que  implementa  modelos,  marcos  de  trabajo  y  herramientas   libres.   Entre  los  muchos  proyectos  con  los  que  cuenta,  se  encuentra  el  proyecto  de  modelado  de   Eclipse:  EMP  (por  sus  siglas  en  inglés:  Eclipse  Modeling  Project).  Este  proyecto  se  centra   en   el   desarrollo   de   herramientas   de   modelado   y   la   generación   automática   de   código.   Empresas   importantes   como   IBM,   Borland   y   Sun   son   algunos   de   los   principales   promotores  de  este  proyecto.   En  Eclipse  para  definir  un  DSL  puede  usarse  un  Metamodelo  generado  en  EMF  (por  sus   siglas  en  inglés:  Eclipse  Modeling  Framework).   El   modelo   fuente   de   un   proyecto   EMF   contiene   la   descripción   de   los   datos   de   una   aplicación  incluyendo:  objetos  y  sus  atributos,  relaciones,  operaciones  y  restricciones.   El  EMF  permite  generar  código  desde  meta-­modelos  definidos  como  diagramas  de  clase   de   UML   usando   plugins   apropiados.   El   EMF   puede   utilizarse   como   base   para   la   especificación  de  lenguajes  visuales.  (Ehrig  et  al.,  2005)   Los   modelos   de   dominio   o   metamodelos   (modelos   que   representan   modelos)   pueden   generarse  a  través  de  las  siguientes  opciones:   •   Interfaces  de  clases  en  Java   •   Modelo  de  clases  de    Rational  Rose   •   Documento  XML   •   Modelo  ecore   El   EMF   (Budinsky,   2003)   ofrece   además   de   la   descripción   de   un   metamodelo,   herramientas   para   importar   y   generar   código   de   modelos   fuente   en   varios   formatos,   ofreciendo  un  camino  simple  y  práctico  para  el  modelado  y  metamodelado.   Una   vez   que   se   cuenta   con   el   modelo   del   dominio   se   puede   utilizarse   el   GEF   para   la   generación  de  una  herramienta  visual.  (Moore,  2004)  
  • 48. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Herramientas  de  modelado   38       Figura  15  Analogía  entre  Eclipse  EMF  y  GMF   Para  facilitar  la  generación  de  herramientas  gráficas  basadas  en  un  modelo  de  dominio,   Eclipse  creo  el  framework  de  modelado  gráfico:  GMF  (por  sus  siglas  en  inglés:  Graphical   Modeling  Framework).  El  objetivo  de  este  framework  es  servir  como  un  puente  amigable  al   usuario  entre  el  EMF  y  el  GEF  para  la  generación  de  editores  visuales.     Figura  16  Proceso  de  generación  de  un  modelador  con  Eclipse  GMF  
  • 49. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Herramientas  de  modelado   39     2.4.   Elección  de  la  herramienta   Para  el  desarrollo  de  la  herramienta  de  modelado  visual  presentado  en  esta  tesis  se  ha   elegido  a  Eclipse  debido  a:   •   Utiliza  estándares  abiertos  de  modelado   •   No  requiere  costos  de  licenciamiento   •   El  componente  de  modelado  es  fácilmente  distribuible  mediante  plugins   •   La  creación  de  herramientas  visuales  es  altamente  configurable   •   Soporta  diferentes  sistemas  operativos   •   La   empresa   IBM   propietaria   de   Lotus   Notes   apoya   fuertemente   a   la   fundación   Eclipse.   IBM   está   migrando   sus   clientes   Lotus   Notes   a   esta   plataforma   lo   que   permitirá   en   trabajos   futuros   integrar   las   actividades   de   diseño   y   codificación   de   aplicaciones  en  un  mismo  entorno      
  • 50. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Plataforma  Lotus  Notes   40                       3.  Capítulo:  Plataforma  Lotus  Notes  /  Domino   En  esta  sección  se  describen  las  características   de  la  plataforma  colaborativa  IBM  Lotus  Notes  /   Domino      
  • 51. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Plataforma  Lotus  Notes   41     3.1.   Breve  historia   La   plataforma   IBM   Lotus   Domino/Notes   permite   el   desarrollo   e   implementación   de   aplicaciones  colaborativas  empresariales.   Entre   sus   características   más   destacables   se   encuentra   el   gran   número   sistemas   operativos  sobre  los  que  puede  ejecutarse  como:  Windows,  IBM  OS,  Mac,  Novell,    UNIX   (AIX   de   IBM,   Solaris   de   Sun,   UX   de   HP   y   Linux).   Ello   permite   a   los   programadores   la   facilidad  de  desarrollar  aplicaciones  independientemente  de  la  plataforma.(Plaza,  2000)   Lotus  Notes  está  fuertemente  orientado  al  desarrollo  de  aplicaciones  colaborativas  donde   interactúen  personas,  información  y  procesos.   Lotus  almacena  de  manera  integrada  los  datos  y  elementos  de  diseño  (estructura  de  los   datos   y   código   de   la   aplicación)(IBM,   2005a)utilizando   un   ítem   básico   llamado   nota   (en   inglés   Notes)   de   ahí   el   origen   de   su   nombre   de   marca.   Todos   estos   elementos   se   encuentran  contenidos  en  una  sola  base  de  datos  de  extensión  “nsf”.       Figura  17  Composición  de  una  BDs  Notes   3.2.   Elementos  de  diseño   Estos  elementos  de  diseño  son  utilizados  para  codificar  la  funcionalidad  de  la  aplicación.   Los   elementos   de   diseño   pueden   contener   opcionalmente   acciones,   eventos   y   otros   elementos  de  diseño.  Las  acciones  y  eventos  pueden  contener  código  en  alguno  de  los   lenguajes  soportados  como:  Java,  JavaScript,  LotusScript,  comandos  y  fórmulas.  
  • 52. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Plataforma  Lotus  Notes   42     Un   elemento   de   diseño   puede   contener   al   mismo   tiempo   la   lógica   de   la   aplicación   (funcionalidad),  la  interfaz  del  usuario  y  la  estructura  de  datos).     Figura  18  Elementos  de  diseño  de  Lotus  Notes   Lotus  proporciona  mecanismos  para  exportación  e  importación  no  solo  de  los  datos  sino   de   la   estructura   de   sus   aplicaciones.   Para   ello   proporciona   una   estructura   XML   estandarizada  llamada  Domino  en  DTD  (por  sus  siglas  en  inglés:  Domino  Document  Type   Definitionk).(IBM,  2005b)   3.3.   Funcionalidades  y  características   Lotus  Notes  se  ha  consolidado  como  una  plataforma  colaborativa  de  desarrollo  rápido  de   aplicaciones:  RAD  (por  sus  siglas  en  inglés:  Rapid  Application  Develop).  Ello  le  permite   desarrollar  fácilmente  aplicaciones  simples.   Elementos de diseño Framesets Pages Forms Views Folders Agents WebServices Outlines SubForms Fields Columns Actions ScriptLibraries Images Files Applets StyleSheets Dataconnections Icon Using About DatabaseScript Navigators
  • 53. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Plataforma  Lotus  Notes   43       Figura  19  Funciones  y  características  de  la  plataforma  Notes/Domino   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.   3.4.   Productos  de  la  plataforma   Debido  a  su  aceptación  en  el  mercado,  facilidad  de  integración  y  servicios  integrados,  IBM   ha  extendido  las  capacidades  originales  de  la  plataforma.  En  la  actualidad  bajo  la  marca   Lotus  se  han  creado  e  integrado  gran  número  de  aplicaciones  y  servidores  especializados   para   distintas   necesidades   como:   portales,   gestión   del   conocimiento,   administración   documental  y  multimedia,  BalanceScorecard,  etc.      
  • 54. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Plataforma  Lotus  Notes   44     Categoría Productos Applications - Desktop & Enterprise Diseñadas para automatizar procesos empresariales, incrementar la productividad del personal y educación. Productivity & Office Suites •   Lotus 1-2-3 •   Lotus Organizer •   Lotus SmartSuite •   Lotus Symphony Business Integration Proporciona una infraestructura centralizada para integración de aplicaciones y automatización de procesos de negocio Application Integration and Connectivity •   Lotus Connector for SAP Solutions •   Lotus Enterprise Integrator for Domino Other Business Integration •   Workplace for SAP Software Enterprise Content Management Administración de contenido, cumplimiento con optimización de procesos de negocio y de contenido. Content Management •   Lotus Domino Document Manager •   Lotus Quickr •   Lotus Web Content Management Messaging Applications Proporcionan ambientes colaborativos integrados basados en directorios, correo electrónico y calendario de grupos. Advanced Messaging •   Lotus Complete Collaboration Express Starter Pack •   Lotus Domino •   Lotus Domino Express •   Lotus Domino WebMail •   Lotus iNotes •   Lotus Notes •   Lotus Notes Hosted Messaging •   Lotus Symphony •   Lotus Workflow Mobile, Speech and Enterprise Access Middleware que soporte el acceso a los recursos de la empresa por clientes ricos, comandos de voz y dispositivos. Mobile and Enterprise Access •   Lotus EasySync Pro •   Lotus Expeditor •   Lotus Mobile Connect Organizational Productivity, Portals and Collaboration Proporciona mensajería instantánea, conferencia Web, ambientes portales colaborativos y ambientes basados en roles. Forms Management •   Lotus Forms (Forms, Turbo) Learning Software •   Lotus Learning Management System •   Workplace Collaborative Learning Portals •   IBM Business Process Accelerator •   IBM Collaboration Accelerator •   IBM Content Accelerator •   IBM Dashboard Accelerator •   IBM Enterprise Suite Accelerator •   IBM Healthcare Accelerator •   IBM Learning Accelerator •   IBM Self-Service Accelerator
  • 55. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Plataforma  Lotus  Notes   45     •   Lotus ActiveInsight •   Lotus Workforce Management •   Workplace for Business Controls and Reporting •   Workplace for SAP Software Enriches, extends and complements your SAP investments Real-time & Team Collaboration •   Lotus Foundations Start •   Lotus Quickr •   Lotus Quickr Content Integrator •   Lotus Sametime (Advanced, Entry, Standard, Unyte) Social Software •   Lotus Connections Security Protege  la  confidencialidad,   integridad,  privacidad  y   aseguramiento  de  sistemas  de   información. Security Compliance and Vulnerability Management •   Lotus Protector for Mail Security Software Development Herramientas  de  desarrollo  de  SW   para  construir  aplicaciones  y  soportar   la  ejecución  de  procesos  de   implantación Analysis, Modeling, Design & Construction •   Lotus Domino Designer Mashup Development •   Lotus Mashups Tabla  1  Lista  de  productos  de  Lotus  por  categoría      
  • 56. Tesis:  Modelado  Visual  de  Aplicaciones  Domino   Lenguaje  de  modelado  de  dominio  específico  para  Lotus  Notes  /  Domino   46                   4.  Capítulo:  Lenguaje  de  modelado  de  dominio   específico  para  Lotus  Notes  /  Domino   Se  presenta  el  proceso  realizado  durante  la  I+D   para   la   definición   del   DSL   para   aplicaciones   Lotus  Notes